Piotr Caban : msxml3: Use IXMLDOMNode_get_nodeType in xmlnode_appendChild.

Alexandre Julliard julliard at winehq.org
Wed Jul 9 06:10:22 CDT 2008


Module: wine
Branch: master
Commit: 26b95dc7fdf9ffc82cff6e4b0778663ffbcf0559
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=26b95dc7fdf9ffc82cff6e4b0778663ffbcf0559

Author: Piotr Caban <piotr.caban at gmail.com>
Date:   Tue Jul  8 20:53:58 2008 +0200

msxml3: Use IXMLDOMNode_get_nodeType in xmlnode_appendChild.

---

 dlls/msxml3/node.c |   23 ++++++-----------------
 1 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index fac74c8..d4703dd 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -661,27 +661,16 @@ static HRESULT WINAPI xmlnode_appendChild(
     IXMLDOMNode** outNewChild)
 {
     xmlnode *This = impl_from_IXMLDOMNode( iface );
-    IXMLDOMNode *pAttr = NULL;
+    DOMNodeType type;
     VARIANT var;
+    HRESULT hr;
 
     TRACE("(%p)->(%p,%p)\n", This, newChild, outNewChild);
 
-    /* Cannot Append an Attribute node. */
-    IUnknown_QueryInterface(newChild, &IID_IXMLDOMNode, (LPVOID*)&pAttr);
-    if(pAttr)
-    {
-        xmlnode *ThisNew = impl_from_IXMLDOMNode( pAttr );
-
-        if(ThisNew->node->type == XML_ATTRIBUTE_NODE)
-        {
-            if(outNewChild) *outNewChild = NULL;
-
-            IUnknown_Release(pAttr);
-
-            return E_FAIL;
-        }
-
-        IUnknown_Release(pAttr);
+    hr = IXMLDOMNode_get_nodeType(newChild, &type);
+    if(FAILED(hr) || type == NODE_ATTRIBUTE) {
+        if(outNewChild) *outNewChild = NULL;
+        return E_FAIL;
     }
 
     VariantInit(&var);




More information about the wine-cvs mailing list