Module: wine Branch: master Commit: cfb8975444eed4994df10bb99fbd4b2ac62c49a1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cfb8975444eed4994df10bb99f...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Apr 30 18:19:08 2008 +0200
mshtml: Handle COMMENT_NODE like ELEMENT_NODE in element collection.
---
dlls/mshtml/htmlelem.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 39e8ebb..8a8e1cc 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -65,6 +65,15 @@ static void elem_vector_normalize(elem_vector *buf) buf->size = buf->len; }
+static BOOL is_elem_node(nsIDOMNode *node) +{ + PRUint16 type=0; + + nsIDOMNode_GetNodeType(node, &type); + + return type == ELEMENT_NODE || type == COMMENT_NODE; +} + #define HTMLELEM_THIS(iface) DEFINE_THIS(HTMLElement, HTMLElement, iface)
#define HTMLELEM_NODE_THIS(iface) DEFINE_THIS2(HTMLElement, node, iface) @@ -1081,7 +1090,6 @@ static void create_child_list(HTMLDocument *doc, HTMLElement *elem, elem_vector nsIDOMNodeList *nsnode_list; nsIDOMNode *iter; PRUint32 list_len = 0, i; - PRUint16 node_type; nsresult nsres;
nsres = nsIDOMNode_GetChildNodes(elem->node.nsnode, &nsnode_list); @@ -1104,8 +1112,7 @@ static void create_child_list(HTMLDocument *doc, HTMLElement *elem, elem_vector continue; }
- nsres = nsIDOMNode_GetNodeType(iter, &node_type); - if(NS_SUCCEEDED(nsres) && node_type == ELEMENT_NODE) + if(is_elem_node(iter)) elem_vector_add(buf, HTMLELEM_NODE_THIS(get_node(doc, iter, TRUE))); } } @@ -1128,7 +1135,6 @@ static void create_all_list(HTMLDocument *doc, HTMLDOMNode *elem, elem_vector *b nsIDOMNodeList *nsnode_list; nsIDOMNode *iter; PRUint32 list_len = 0, i; - PRUint16 node_type; nsresult nsres;
nsres = nsIDOMNode_GetChildNodes(elem->nsnode, &nsnode_list); @@ -1148,8 +1154,7 @@ static void create_all_list(HTMLDocument *doc, HTMLDOMNode *elem, elem_vector *b continue; }
- nsres = nsIDOMNode_GetNodeType(iter, &node_type); - if(NS_SUCCEEDED(nsres) && node_type == ELEMENT_NODE) { + if(is_elem_node(iter)) { HTMLDOMNode *node = get_node(doc, iter, TRUE);
elem_vector_add(buf, HTMLELEM_NODE_THIS(node));