From bf6bc398bd40e39a016725550f5b8446a01ee2d1 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Wed, 12 Aug 2009 08:53:05 +0000 Subject: Fix up the failed 3 test cases for DOMTS Core level 3. svn path=/trunk/dom/; revision=9212 --- src/core/node.c | 6 +++++- src/core/text.c | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/core/node.c b/src/core/node.c index 0645769..1c0b28f 100644 --- a/src/core/node.c +++ b/src/core/node.c @@ -1007,6 +1007,10 @@ dom_exception _dom_node_replace_child(dom_node_internal *node, _dom_node_detach(new_child); } + /* When a Node is attached, it should be removed from the pending + * list */ + dom_node_remove_pending(new_child); + /* Perform the replacement */ _dom_node_replace(old_child, new_child); @@ -2173,7 +2177,7 @@ void _dom_node_attach(dom_node_internal *node, dom_node_internal *parent, void _dom_node_detach(dom_node_internal *node) { /* When a Node is not in the document tree, it must be in the - pending list */ + * pending list */ dom_node_mark_pending(node); _dom_node_detach_range(node, node); diff --git a/src/core/text.c b/src/core/text.c index 6cb9e1f..6aa6d0f 100644 --- a/src/core/text.c +++ b/src/core/text.c @@ -344,10 +344,6 @@ dom_exception walk_logic_adjacent_text_in_order( dom_node_internal *node, walk_operation opt, walk_order order, dom_string **ret, bool *cont) { - dom_exception err; - dom_string *data, *tmp; - dom_node_internal *parent = dom_node_get_parent(node); - /* If we reach the leaf of the DOM tree, just return to continue * to next sibling of our parent */ if (node == NULL) { @@ -355,6 +351,10 @@ dom_exception walk_logic_adjacent_text_in_order( return DOM_NO_ERR; } + dom_exception err; + dom_string *data, *tmp; + dom_node_internal *parent = dom_node_get_parent(node); + while (node != NULL) { /* If we reach the boundary of logical-adjacent text, we stop */ if (node->type == DOM_ELEMENT_NODE || -- cgit v1.2.3