From 6487a287cf395a8eac11e0c4f5003e53cac2d1fe Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Thu, 28 Sep 2023 12:04:57 +0200 Subject: [PATCH] [document] Slightly better handling of string --- src/document/document.cpp | 7 +------ src/document/libdom/renderer.c | 4 ++++ src/document/libdom/renderer2.c | 3 +++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/document/document.cpp b/src/document/document.cpp index 03d9cd3b..8b7c9118 100644 --- a/src/document/document.cpp +++ b/src/document/document.cpp @@ -310,9 +310,6 @@ reset_document(struct document *document) #if defined(CONFIG_ECMASCRIPT_SMJS) || defined(CONFIG_QUICKJS) || defined(CONFIG_MUJS) free_ecmascript_string_list(&document->onload_snippets); free_uri_list(&document->ecmascript_imports); - if (document->text.length) { - done_string(&document->text); - } mem_free_set(&document->body_onkeypress, NULL); /// kill_timer(&document->timeout); /// free_document(document->dom); @@ -403,9 +400,7 @@ done_document(struct document *document) #endif #ifdef CONFIG_LIBDOM - if (document->text.length) { - done_string(&document->text); - } + done_string(&document->text); free_document(document->dom); if (document->element_map) { diff --git a/src/document/libdom/renderer.c b/src/document/libdom/renderer.c index b2d3f708..f1553e9a 100644 --- a/src/document/libdom/renderer.c +++ b/src/document/libdom/renderer.c @@ -268,6 +268,10 @@ render_source_document_cxx(struct cache_entry *cached, struct document *document if (!buffer->length) { if (document->text.length) { done_string(&document->text); + + if (!init_string(&document->text)) { + return; + } } mapa = document->element_map; diff --git a/src/document/libdom/renderer2.c b/src/document/libdom/renderer2.c index 5623a719..957d85cc 100644 --- a/src/document/libdom/renderer2.c +++ b/src/document/libdom/renderer2.c @@ -319,6 +319,9 @@ dump_xhtml(struct cache_entry *cached, struct document *document, int parse) if (1) { if (document->text.length) { done_string(&document->text); + if (!init_string(&document->text)) { + return; + } } mapa = document->element_map;