summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--javascript/jsapi/document.c6
-rw-r--r--render/html.c5
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);