Jacek Caban : msxml3: Update orphaned list in put_documentElement.
Alexandre Julliard
julliard at winehq.org
Fri Oct 17 07:25:47 CDT 2008
Module: wine
Branch: master
Commit: e7ff1019969650eda38e7957600fde9af5774984
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e7ff1019969650eda38e7957600fde9af5774984
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Oct 16 13:55:41 2008 -0500
msxml3: Update orphaned list in put_documentElement.
---
dlls/msxml3/domdoc.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 8ef0db4..c685889 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -922,6 +922,7 @@ static HRESULT WINAPI domdoc_put_documentElement(
{
domdoc *This = impl_from_IXMLDOMDocument2( iface );
IXMLDOMNode *elementNode;
+ xmlNodePtr oldRoot;
xmlnode *xmlNode;
HRESULT hr;
@@ -932,9 +933,17 @@ static HRESULT WINAPI domdoc_put_documentElement(
return hr;
xmlNode = impl_from_IXMLDOMNode( elementNode );
- xmlDocSetRootElement( get_doc(This), xmlNode->node);
+
+ if(!xmlNode->node->parent)
+ if(xmldoc_remove_orphan(xmlNode->node->doc, xmlNode->node) != S_OK)
+ WARN("%p is not an orphan of %p\n", xmlNode->node->doc, xmlNode->node);
+
+ oldRoot = xmlDocSetRootElement( get_doc(This), xmlNode->node);
IXMLDOMNode_Release( elementNode );
+ if(oldRoot)
+ xmldoc_add_orphan(oldRoot->doc, oldRoot);
+
return S_OK;
}
More information about the wine-cvs
mailing list