Alistair Leslie-Hughes : msxml3: Use our parent doc if we don't have one.
Alexandre Julliard
julliard at winehq.org
Mon Feb 9 10:29:55 CST 2009
Module: wine
Branch: master
Commit: 17db41c3497f6e57e3ee8d001187354d2549c0ac
URL: http://source.winehq.org/git/wine.git/?a=commit;h=17db41c3497f6e57e3ee8d001187354d2549c0ac
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Thu Feb 5 20:43:59 2009 +1100
msxml3: Use our parent doc if we don't have one.
---
dlls/msxml3/node.c | 5 +++++
dlls/msxml3/tests/domdoc.c | 29 +++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index 7baef30..72cc61e 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -387,6 +387,11 @@ static HRESULT get_node(
if ( !out )
return E_INVALIDARG;
+
+ /* if we dont have a doc, use our parent. */
+ if(node && !node->doc && node->parent)
+ node->doc = node->parent->doc;
+
*out = create_node( node );
if (!*out)
return S_FALSE;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 584eab3..c70e6ed 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -2404,6 +2404,7 @@ static void test_cloneNode(void )
long nAttrCnt = 0, nAttrCnt1 = 0;
IXMLDOMNode *node;
IXMLDOMNode *node_clone;
+ IXMLDOMNode *node_first;
HRESULT r;
BSTR str;
static const WCHAR szSearch[] = { 'l', 'c', '/', 'p', 'r', 0 };
@@ -2448,6 +2449,20 @@ static void test_cloneNode(void )
return;
}
+ r = IXMLDOMNode_get_firstChild(node_clone, &node_first);
+ ok( r == S_OK, "ret %08x\n", r );
+ if(r == S_OK)
+ {
+ IXMLDOMDocument *doc2;
+
+ r = IXMLDOMNode_get_ownerDocument(node_clone, &doc2);
+ ok( r == S_OK, "ret %08x\n", r );
+ if(r == S_OK)
+ IXMLDOMDocument_Release(doc2);
+
+ IXMLDOMNode_Release(node_first);
+ }
+
r = IXMLDOMNode_get_childNodes(node, &pList);
ok( r == S_OK, "ret %08x\n", r );
if (pList)
@@ -2496,6 +2511,20 @@ static void test_cloneNode(void )
return;
}
+ r = IXMLDOMNode_get_firstChild(node_clone, &node_first);
+ ok( r == S_FALSE, "ret %08x\n", r );
+ if(r == S_OK)
+ {
+ IXMLDOMDocument *doc2;
+
+ r = IXMLDOMNode_get_ownerDocument(node_clone, &doc2);
+ ok( r == S_OK, "ret %08x\n", r );
+ if(r == S_OK)
+ IXMLDOMDocument_Release(doc2);
+
+ IXMLDOMNode_Release(node_first);
+ }
+
r = IXMLDOMNode_get_childNodes(node_clone, &pList);
ok( r == S_OK, "ret %08x\n", r );
if (pList)
More information about the wine-cvs
mailing list