[PATCH 3/4] Fix IXMLDOMNode::get_namespaceURI() for empty URIs
Nikolay Sivov
nsivov at codeweavers.com
Tue Sep 14 00:01:16 CDT 2010
---
dlls/msxml3/node.c | 18 ++++++++----------
dlls/msxml3/tests/domdoc.c | 4 ++--
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index 7e91292..8f3ebc6 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -1402,8 +1402,7 @@ static HRESULT WINAPI xmlnode_get_namespaceURI(
BSTR* namespaceURI)
{
xmlnode *This = impl_from_IXMLDOMNode( iface );
- HRESULT hr = S_FALSE;
- xmlNsPtr *pNSList;
+ xmlNsPtr *ns;
TRACE("(%p)->(%p)\n", This, namespaceURI );
@@ -1412,16 +1411,15 @@ static HRESULT WINAPI xmlnode_get_namespaceURI(
*namespaceURI = NULL;
- pNSList = xmlGetNsList(This->node->doc, This->node);
- if(pNSList)
+ if ((ns = xmlGetNsList(This->node->doc, This->node)))
{
- *namespaceURI = bstr_from_xmlChar( pNSList[0]->href );
-
- xmlFree( pNSList );
- hr = S_OK;
+ if (ns[0]->href) *namespaceURI = bstr_from_xmlChar( ns[0]->href );
+ xmlFree(ns);
}
- return hr;
+ TRACE("uri: %s\n", debugstr_w(*namespaceURI));
+
+ return *namespaceURI ? S_OK : S_FALSE;
}
static HRESULT WINAPI xmlnode_get_prefix(
@@ -1444,7 +1442,7 @@ static HRESULT WINAPI xmlnode_get_prefix(
xmlFree(ns);
}
- TRACE("prefix %s\n", debugstr_w(*prefixString));
+ TRACE("prefix: %s\n", debugstr_w(*prefixString));
return *prefixString ? S_OK : S_FALSE;
}
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 176ff36..cd789e5 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -6163,8 +6163,8 @@ static void test_get_prefix(void)
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_namespaceURI(element, &str);
- todo_wine ok( hr == S_FALSE, "got 0x%08x\n", hr);
- todo_wine ok( str == 0, "got %p\n", str);
+ ok( hr == S_FALSE, "got 0x%08x\n", hr);
+ ok( str == 0, "got %p\n", str);
IXMLDOMElement_Release(element);
--
1.5.6.5
--------------000206040701090703070103--
More information about the wine-patches
mailing list