From: Nikolay Sivov Subject: [PATCH] msxml3/tests: Fix accessing released intreface pointer Message-Id: <1397622950.11611.0.camel@laptop> Date: Wed, 16 Apr 2014 08:35:50 +0400 http://bugs.winehq.org/show_bug.cgi?id=36006 --- dlls/msxml3/tests/domdoc.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 50f0941..1a2ec5e 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -376,9 +376,10 @@ static void _expect_no_children(IXMLDOMNode *node, int line) #define EXPECT_REF(node,ref) _expect_ref((IUnknown*)node, ref, __LINE__) static void _expect_ref(IUnknown* obj, ULONG ref, int line) { - ULONG rc = IUnknown_AddRef(obj); - IUnknown_Release(obj); - ok_(__FILE__,line)(rc-1 == ref, "expected refcount %d, got %d\n", ref, rc-1); + ULONG rc; + IUnknown_AddRef(obj); + rc = IUnknown_Release(obj); + ok_(__FILE__,line)(rc == ref, "expected refcount %d, got %d\n", ref, rc); } #define EXPECT_LIST_LEN(list,len) _expect_list_len(list, len, __LINE__) @@ -2493,18 +2494,18 @@ todo_wine { EXPECT_REF(elem2, 2); todo_wine ok(unk == unk2, "got %p and %p\n", unk, unk2); - IUnknown_Release(unk); - IUnknown_Release(unk2); /* IUnknown refcount is not affected by node refcount */ - todo_wine EXPECT_REF(unk2, 3); + todo_wine EXPECT_REF(unk2, 4); IXMLDOMElement_AddRef(elem2); - todo_wine EXPECT_REF(unk2, 3); + todo_wine EXPECT_REF(unk2, 4); IXMLDOMElement_Release(elem2); IXMLDOMElement_Release(elem2); - todo_wine EXPECT_REF(unk2, 2); + todo_wine EXPECT_REF(unk2, 3); + + IUnknown_Release(unk2); hr = IXMLDOMElement_get_childNodes( element, &node_list ); EXPECT_HR(hr, S_OK);