diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2012-07-07 00:28:45 +0100 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2012-07-07 00:29:47 +0100 |
commit | c5a87d3ebbe30d51f07f7f4d1ed97e1a56f89676 (patch) | |
tree | a0dc25867c714219d21155e6fa69784bc69fbb70 | |
parent | 752261c66c3a8f6d5cbfb4d1311776dd07f0e144 (diff) | |
download | netsurf-c5a87d3ebbe30d51f07f7f4d1ed97e1a56f89676.tar.gz netsurf-c5a87d3ebbe30d51f07f7f4d1ed97e1a56f89676.tar.bz2 |
do not try and write to document if the parser is finished
-rw-r--r-- | javascript/jsapi/document.c | 6 | ||||
-rw-r--r-- | render/html.c | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/javascript/jsapi/document.c b/javascript/jsapi/document.c index fb1da7ef8..7d4ebc543 100644 --- a/javascript/jsapi/document.c +++ b/javascript/jsapi/document.c @@ -57,9 +57,9 @@ static JSBool JSAPI_NATIVE(write, JSContext *cx, uintN argc, jsval *vp) JSString_to_char(u16_txt, txt, length); LOG(("content %p parser %p writing %s",htmlc, htmlc->parser_binding, txt)); - - dom_hubbub_parser_insert_chunk(htmlc->parser_binding, (uint8_t *)txt, length); - + if (htmlc->parser_binding != NULL) { + dom_hubbub_parser_insert_chunk(htmlc->parser_binding, (uint8_t *)txt, length); + } JSAPI_SET_RVAL(cx, vp, JSVAL_VOID); return JS_TRUE; diff --git a/render/html.c b/render/html.c index 9db7ab971..495cd7dab 100644 --- a/render/html.c +++ b/render/html.c @@ -796,6 +796,7 @@ encoding_change: /* Destroy binding */ binding_destroy_tree(html->parser_binding); + html->parser_binding = NULL; /* Create new binding, using the new encoding */ err = binding_create_tree(&html->parser_binding, @@ -2666,8 +2667,10 @@ static void html_destroy(struct content *c) if (html->base_url) nsurl_unref(html->base_url); - if (html->parser_binding != NULL) + if (html->parser_binding != NULL) { binding_destroy_tree(html->parser_binding); + html->parser_binding = NULL; + } if (html->document != NULL) binding_destroy_document(html->document); |