Module: wine Branch: refs/heads/master Commit: a48bb7b3de2f676eb8de4af7000102a165904c11 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a48bb7b3de2f676eb8de4af7...
Author: Huw Davies huw@codeweavers.com Date: Tue Jan 10 19:58:42 2006 +0100
msxml: It's valid to release an empty document.
---
dlls/msxml3/node.c | 4 ++-- dlls/msxml3/tests/domdoc.c | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index ae96fa1..704e92e 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -743,8 +743,8 @@ static ULONG WINAPI Internal_Release( ref = InterlockedDecrement( &This->ref ); if ( ref == 0 ) { - assert( This->node->doc ); - xmldoc_release( This->node->doc ); + if( This->node ) + xmldoc_release( This->node->doc ); HeapFree( GetProcessHeap(), 0, This ); }
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index bb378c7..49c303b 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -517,6 +517,13 @@ static void test_refs(void) CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (LPVOID*)&doc ); if( r != S_OK ) return; + ref = IXMLDOMDocument_Release(doc); + ok( ref == 0, "ref %ld\n", ref); + + r = CoCreateInstance( &CLSID_DOMDocument, NULL, + CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (LPVOID*)&doc ); + if( r != S_OK ) + return;
str = SysAllocString( szComplete4 ); r = IXMLDOMDocument_loadXML( doc, str, &b );