summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-09-18 21:55:51 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-09-18 21:55:51 +0000
commit79e5d74377af803222fb9c84bd97d624aafec39b (patch)
treebcdefdff2fe62145e46e626149c2ee19adb3aab1
parentd9ce39dc753fdac4ecf16efd2e92379fb07cfef6 (diff)
downloadlibhubbub-79e5d74377af803222fb9c84bd97d624aafec39b.tar.gz
libhubbub-79e5d74377af803222fb9c84bd97d624aafec39b.tar.bz2
Ensure we unref collect node if it still exists when we come to destroy the treebuilder (this can occur if EOF is encountered when in generic_rcdata/script_collect modes).
Note that the spec has since changed here, so we'll need to resync, anyway. This is simply to ensure the testsuite passes once more. svn path=/trunk/hubbub/; revision=5374
-rw-r--r--src/treebuilder/treebuilder.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index f926d9e..3ffe99f 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -182,6 +182,12 @@ void hubbub_treebuilder_destroy(hubbub_treebuilder *treebuilder)
treebuilder->context.document);
}
+ if (treebuilder->context.collect.node != NULL) {
+ treebuilder->tree_handler->unref_node(
+ treebuilder->tree_handler->ctx,
+ treebuilder->context.collect.node);
+ }
+
for (uint32_t n = treebuilder->context.current_node;
n > 0; n--) {
treebuilder->tree_handler->unref_node(