Module: wine Branch: master Commit: e7ff1019969650eda38e7957600fde9af5774984 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e7ff1019969650eda38e795760...
Author: Jacek Caban jacek@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; }