IXMLDOMAttribute shouldn't report its parent
Nikolay Sivov
bunglehead at gmail.com
Tue Feb 9 12:00:25 CST 2010
---
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 );
--
1.5.6.5
--=-X59El4cAJQryZM2FN2tL--
More information about the wine-patches
mailing list