Module: wine Branch: master Commit: f65fd26fe1727caab28b9453da32925a9d1b78b2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f65fd26fe1727caab28b9453da...
Author: Nikolay Sivov bunglehead@gmail.com Date: Tue Feb 9 21:00:25 2010 +0300
msxml3: IXMLDOMAttribute shouldn't report its parent.
---
dlls/msxml3/attribute.c | 5 ++++- dlls/msxml3/tests/domdoc.c | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c index 04b8c46..22364f3 100644 --- a/dlls/msxml3/attribute.c +++ b/dlls/msxml3/attribute.c @@ -213,7 +213,10 @@ static HRESULT WINAPI domattr_get_parentNode( IXMLDOMNode** parent ) { domattr *This = impl_from_IXMLDOMAttribute( iface ); - return IXMLDOMNode_get_parentNode( IXMLDOMNode_from_impl(&This->node), parent ); + TRACE("(%p)->(%p)\n", This, parent); + if (!parent) return E_INVALIDARG; + *parent = NULL; + return S_FALSE; }
static HRESULT WINAPI domattr_get_childNodes( diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 3c5c53c..0c847e5 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -1216,8 +1216,19 @@ static void test_domnode( void ) r = IXMLDOMElement_getAttributeNode( element, str, &attr); ok( r == S_OK, "GetAttributeNode ret %08x\n", r ); ok( attr != NULL, "getAttributeNode returned NULL\n" ); - if(attr) + if (attr) + { + r = IXMLDOMAttribute_get_parentNode( attr, NULL ); + ok( r == E_INVALIDARG, "Expected E_INVALIDARG, ret %08x\n", r ); + + /* attribute doesn't have a parent in msxml interpretation */ + node = (IXMLDOMNode*)0xdeadbeef; + r = IXMLDOMAttribute_get_parentNode( attr, &node ); + ok( r == S_FALSE, "Expected S_FALSE, ret %08x\n", r ); + ok( node == NULL, "Expected NULL, got %p\n", node ); + IXMLDOMAttribute_Release(attr); + }
SysFreeString( str );