msxml3: Use our parent doc if we don't have one.

oldstable
Alistair Leslie-Hughes 2009-02-05 20:43:59 +11:00 committed by Alexandre Julliard
parent e0aee93dc6
commit 17db41c349
2 changed files with 34 additions and 0 deletions

View File

@ -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;

View File

@ -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)