summaryrefslogtreecommitdiff
path: root/src/treebuilder/initial.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-07-15 10:52:13 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-07-15 10:52:13 +0000
commit2f716a2a02f5c3728b8721736400fedefda46bc2 (patch)
tree6d0432bf4fdb17625957fe9ba2cb68ace8527aef /src/treebuilder/initial.c
parentdf73d242d905943a2282d7097e0ec9de9448847b (diff)
downloadlibhubbub-2f716a2a02f5c3728b8721736400fedefda46bc2.tar.gz
libhubbub-2f716a2a02f5c3728b8721736400fedefda46bc2.tar.bz2
Make tree2 perform reference counting.
Fix bits of the treebuilder to perform reference counting correctly in the face of *result not pointing to the same object as the node passed in to the treebuilder client callbacks. svn path=/trunk/hubbub/; revision=4666
Diffstat (limited to 'src/treebuilder/initial.c')
-rw-r--r--src/treebuilder/initial.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/treebuilder/initial.c b/src/treebuilder/initial.c
index 70869b9..1bce044 100644
--- a/src/treebuilder/initial.c
+++ b/src/treebuilder/initial.c
@@ -266,6 +266,11 @@ bool handle_initial(hubbub_treebuilder *treebuilder, const hubbub_token *token)
doctype);
}
+ treebuilder->tree_handler->unref_node(
+ treebuilder->tree_handler->ctx, appended);
+ treebuilder->tree_handler->unref_node(
+ treebuilder->tree_handler->ctx, doctype);
+
const hubbub_doctype *cdoc = &token->data.doctype;
/* Work out whether we need quirks mode or not */
@@ -280,11 +285,6 @@ bool handle_initial(hubbub_treebuilder *treebuilder, const hubbub_token *token)
HUBBUB_QUIRKS_MODE_LIMITED);
}
- treebuilder->tree_handler->unref_node(
- treebuilder->tree_handler->ctx, appended);
- treebuilder->tree_handler->unref_node(
- treebuilder->tree_handler->ctx, doctype);
-
treebuilder->context.mode = BEFORE_HTML;
}
break;