[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-patches
Subject:    mshtml #6: Handle COMMENT_NODE like ELEMENT_NODE in element
From:       Jacek Caban <jacek () codeweavers ! com>
Date:       2008-04-30 16:19:08
Message-ID: 48189BFC.4010609 () codeweavers ! com
[Download RAW message or body]

---
  dlls/mshtml/htmlelem.c |   17 +++++++++++------
  1 files changed, 11 insertions(+), 6 deletions(-)

["0ebe4c0a7daf4833c0c1d98d9ece0db2192a20ec.diff" (text/x-patch)]

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index f450297..f5ad32b 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));





[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic