diff options
Diffstat (limited to 'src/treebuilder/in_foreign_content.c')
-rw-r--r-- | src/treebuilder/in_foreign_content.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/treebuilder/in_foreign_content.c b/src/treebuilder/in_foreign_content.c index 73a061d..97fb1d0 100644 --- a/src/treebuilder/in_foreign_content.c +++ b/src/treebuilder/in_foreign_content.c @@ -551,12 +551,13 @@ hubbub_error handle_in_foreign_content(hubbub_treebuilder *treebuilder, hubbub_ns ns; element_type type; void *node_iterator; - while(node_iterator !=stack[node].node) { + void *vnode = stack[node].node; + do{ element_stack_pop(treebuilder, &ns, &type, &node_iterator); treebuilder->tree_handler->unref_node( treebuilder->tree_handler->ctx, node_iterator); - } + } while(node_iterator != vnode); return HUBBUB_OK; } if(stack[node].ns == HUBBUB_NS_HTML) { |