mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
[document] free text allocated by renderer2
This commit is contained in:
parent
4d6ae6e925
commit
8b76c1331d
@ -267,6 +267,7 @@ reset_document(struct document *document)
|
|||||||
#ifdef CONFIG_ECMASCRIPT
|
#ifdef CONFIG_ECMASCRIPT
|
||||||
free_string_list(&document->onload_snippets);
|
free_string_list(&document->onload_snippets);
|
||||||
free_uri_list(&document->ecmascript_imports);
|
free_uri_list(&document->ecmascript_imports);
|
||||||
|
mem_free_set(&document->text, NULL);
|
||||||
/// kill_timer(&document->timeout);
|
/// kill_timer(&document->timeout);
|
||||||
/// free_document(document->dom);
|
/// free_document(document->dom);
|
||||||
#endif
|
#endif
|
||||||
@ -332,6 +333,7 @@ done_document(struct document *document)
|
|||||||
free_string_list(&document->onload_snippets);
|
free_string_list(&document->onload_snippets);
|
||||||
free_uri_list(&document->ecmascript_imports);
|
free_uri_list(&document->ecmascript_imports);
|
||||||
kill_timer(&document->timeout);
|
kill_timer(&document->timeout);
|
||||||
|
mem_free_if(document->text);
|
||||||
free_document(document->dom);
|
free_document(document->dom);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -212,6 +212,7 @@ struct document {
|
|||||||
timer_id_T timeout;
|
timer_id_T timeout;
|
||||||
int ecmascript_counter;
|
int ecmascript_counter;
|
||||||
void *dom;
|
void *dom;
|
||||||
|
char *text;
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CSS
|
#ifdef CONFIG_CSS
|
||||||
/** @todo FIXME: We should externally maybe using cache_entry store the
|
/** @todo FIXME: We should externally maybe using cache_entry store the
|
||||||
|
@ -281,16 +281,11 @@ render_xhtml_document(struct cache_entry *cached, struct document *document, str
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct string head;
|
struct string head;
|
||||||
struct string tt;
|
|
||||||
|
|
||||||
assert(cached && document);
|
assert(cached && document);
|
||||||
if_assert_failed return;
|
if_assert_failed return;
|
||||||
|
|
||||||
if (!init_string(&head)) return;
|
if (!init_string(&head)) return;
|
||||||
if (!init_string(&tt)) {
|
|
||||||
done_string(&head);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
add_to_string(&head, "\r\nContent-Type: text/html; charset=utf-8\r\n");
|
add_to_string(&head, "\r\nContent-Type: text/html; charset=utf-8\r\n");
|
||||||
|
|
||||||
@ -298,8 +293,15 @@ render_xhtml_document(struct cache_entry *cached, struct document *document, str
|
|||||||
|
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
std::string text = doc->write_to_string_formatted();
|
std::string text = doc->write_to_string_formatted();
|
||||||
|
struct string tt;
|
||||||
|
|
||||||
|
if (!init_string(&tt)) {
|
||||||
|
done_string(&head);
|
||||||
|
return;
|
||||||
|
}
|
||||||
add_bytes_to_string(&tt, text.c_str(), text.size());
|
add_bytes_to_string(&tt, text.c_str(), text.size());
|
||||||
buffer = &tt;
|
buffer = &tt;
|
||||||
|
document->text = tt.source;
|
||||||
}
|
}
|
||||||
mem_free_set(&cached->head, head.source);
|
mem_free_set(&cached->head, head.source);
|
||||||
render_html_document(cached, document, buffer);
|
render_html_document(cached, document, buffer);
|
||||||
|
Loading…
Reference in New Issue
Block a user