[PATCH 5/6] Get rid of ::get_prefix() forward
Nikolay Sivov
nsivov at codeweavers.com
Sun Oct 31 04:22:53 CDT 2010
---
dlls/msxml3/attribute.c | 5 ++-
dlls/msxml3/cdata.c | 5 ++-
dlls/msxml3/comment.c | 5 ++-
dlls/msxml3/docfrag.c | 5 ++-
dlls/msxml3/domdoc.c | 5 ++-
dlls/msxml3/element.c | 5 ++-
dlls/msxml3/entityref.c | 5 ++-
dlls/msxml3/msxml_private.h | 10 ++++++++
dlls/msxml3/node.c | 20 +++++----------
dlls/msxml3/pi.c | 5 ++-
dlls/msxml3/tests/domdoc.c | 54 ++++++++++++++++++++++++++++++++++++++++++-
dlls/msxml3/text.c | 5 ++-
12 files changed, 97 insertions(+), 32 deletions(-)
diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c
index c545a76..c9a2cc7 100644
--- a/dlls/msxml3/attribute.c
+++ b/dlls/msxml3/attribute.c
@@ -497,10 +497,11 @@ static HRESULT WINAPI domattr_get_namespaceURI(
static HRESULT WINAPI domattr_get_prefix(
IXMLDOMAttribute *iface,
- BSTR* p)
+ BSTR* prefix)
{
domattr *This = impl_from_IXMLDOMAttribute( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return node_get_prefix( &This->node, prefix );
}
static HRESULT WINAPI domattr_get_baseName(
diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c
index 59898d4..e62a7d6 100644
--- a/dlls/msxml3/cdata.c
+++ b/dlls/msxml3/cdata.c
@@ -508,10 +508,11 @@ static HRESULT WINAPI domcdata_get_namespaceURI(
static HRESULT WINAPI domcdata_get_prefix(
IXMLDOMCDATASection *iface,
- BSTR* p)
+ BSTR* prefix)
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
static HRESULT WINAPI domcdata_get_baseName(
diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c
index 7358bd5..b749638 100644
--- a/dlls/msxml3/comment.c
+++ b/dlls/msxml3/comment.c
@@ -501,10 +501,11 @@ static HRESULT WINAPI domcomment_get_namespaceURI(
static HRESULT WINAPI domcomment_get_prefix(
IXMLDOMComment *iface,
- BSTR* p)
+ BSTR* prefix)
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
static HRESULT WINAPI domcomment_get_baseName(
diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c
index 36d3cac..2c0ad81 100644
--- a/dlls/msxml3/docfrag.c
+++ b/dlls/msxml3/docfrag.c
@@ -505,10 +505,11 @@ static HRESULT WINAPI domfrag_get_namespaceURI(
static HRESULT WINAPI domfrag_get_prefix(
IXMLDOMDocumentFragment *iface,
- BSTR* p)
+ BSTR* prefix)
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
static HRESULT WINAPI domfrag_get_baseName(
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index f301470..b70acd4 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -1331,10 +1331,11 @@ static HRESULT WINAPI domdoc_get_namespaceURI(
static HRESULT WINAPI domdoc_get_prefix(
IXMLDOMDocument3 *iface,
- BSTR* prefixString )
+ BSTR* prefix )
{
domdoc *This = impl_from_IXMLDOMDocument3( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), prefixString );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index cf8be13..fd49874 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -553,10 +553,11 @@ static HRESULT WINAPI domelem_get_namespaceURI(
static HRESULT WINAPI domelem_get_prefix(
IXMLDOMElement *iface,
- BSTR* p)
+ BSTR* prefix)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return node_get_prefix( &This->node, prefix );
}
static HRESULT WINAPI domelem_get_baseName(
diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c
index 1fcbdd9..fae2a2c 100644
--- a/dlls/msxml3/entityref.c
+++ b/dlls/msxml3/entityref.c
@@ -499,10 +499,11 @@ static HRESULT WINAPI entityref_get_namespaceURI(
static HRESULT WINAPI entityref_get_prefix(
IXMLDOMEntityReference *iface,
- BSTR* p)
+ BSTR* prefix)
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return node_get_prefix( &This->node, prefix );
}
static HRESULT WINAPI entityref_get_baseName(
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index 0d41eac..8ae84cf 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -193,6 +193,7 @@ extern HRESULT node_replace_child(xmlnode*,IXMLDOMNode*,IXMLDOMNode*,IXMLDOMNode
extern HRESULT node_put_text(xmlnode*,BSTR);
extern HRESULT node_get_xml(xmlnode*,BOOL,BOOL,BSTR*);
extern HRESULT node_clone(xmlnode*,VARIANT_BOOL,IXMLDOMNode**);
+extern HRESULT node_get_prefix(xmlnode*,BSTR*);
extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document);
@@ -253,6 +254,15 @@ static inline HRESULT return_null_var(VARIANT *p)
return S_FALSE;
}
+static inline HRESULT return_null_bstr(BSTR *p)
+{
+ if(!p)
+ return E_INVALIDARG;
+
+ *p = NULL;
+ return S_FALSE;
+}
+
#endif
extern void* libxslt_handle;
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index e13fc4c..3b2ce35 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -1151,29 +1151,23 @@ static HRESULT WINAPI xmlnode_get_namespaceURI(
return *namespaceURI ? S_OK : S_FALSE;
}
-static HRESULT WINAPI xmlnode_get_prefix(
- IXMLDOMNode *iface,
- BSTR* prefixString)
+HRESULT node_get_prefix(xmlnode *This, BSTR *prefix)
{
- xmlnode *This = impl_from_IXMLDOMNode( iface );
xmlNsPtr *ns;
- TRACE("(%p)->(%p)\n", This, prefixString );
+ if (!prefix) return E_INVALIDARG;
- if(!prefixString)
- return E_INVALIDARG;
-
- *prefixString = NULL;
+ *prefix = NULL;
if ((ns = xmlGetNsList(This->node->doc, This->node)))
{
- if (ns[0]->prefix) *prefixString = bstr_from_xmlChar( ns[0]->prefix );
+ if (ns[0]->prefix) *prefix = bstr_from_xmlChar( ns[0]->prefix );
xmlFree(ns);
}
- TRACE("prefix: %s\n", debugstr_w(*prefixString));
+ TRACE("prefix: %s\n", debugstr_w(*prefix));
- return *prefixString ? S_OK : S_FALSE;
+ return *prefix ? S_OK : S_FALSE;
}
static HRESULT WINAPI xmlnode_get_baseName(
@@ -1264,7 +1258,7 @@ static const struct IXMLDOMNodeVtbl xmlnode_vtbl =
xmlnode_selectSingleNode,
NULL,
xmlnode_get_namespaceURI,
- xmlnode_get_prefix,
+ NULL,
xmlnode_get_baseName,
xmlnode_transformNodeToObject,
};
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index 5e3fd3a..2158c13 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -515,10 +515,11 @@ static HRESULT WINAPI dom_pi_get_namespaceURI(
static HRESULT WINAPI dom_pi_get_prefix(
IXMLDOMProcessingInstruction *iface,
- BSTR* p)
+ BSTR* prefix)
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
static HRESULT WINAPI dom_pi_get_baseName(
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index f560694..fb5c4ac 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -7248,14 +7248,66 @@ static void test_createNode(void)
static void test_get_prefix(void)
{
- IXMLDOMDocument *doc;
+ IXMLDOMDocumentFragment *fragment;
+ IXMLDOMCDATASection *cdata;
IXMLDOMElement *element;
+ IXMLDOMComment *comment;
+ IXMLDOMDocument *doc;
HRESULT hr;
BSTR str;
doc = create_document(&IID_IXMLDOMDocument);
if (!doc) return;
+ /* nodes that can't support prefix */
+ /* 1. document */
+ str = (void*)0xdeadbeef;
+ hr = IXMLDOMDocument_get_prefix(doc, &str);
+ ok( hr == S_FALSE, "got 0x%08x\n", hr);
+ ok( str == 0, "got %p\n", str);
+
+ hr = IXMLDOMDocument_get_prefix(doc, NULL);
+ ok( hr == E_INVALIDARG, "got 0x%08x\n", hr);
+
+ /* 2. cdata */
+ hr = IXMLDOMDocument_createCDATASection(doc, NULL, &cdata);
+ ok(hr == S_OK, "got %08x\n", hr );
+
+ str = (void*)0xdeadbeef;
+ hr = IXMLDOMCDATASection_get_prefix(cdata, &str);
+ ok(hr == S_FALSE, "got %08x\n", hr);
+ ok( str == 0, "got %p\n", str);
+
+ hr = IXMLDOMCDATASection_get_prefix(cdata, NULL);
+ ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ IXMLDOMCDATASection_Release(cdata);
+
+ /* 3. comment */
+ hr = IXMLDOMDocument_createComment(doc, NULL, &comment);
+ ok(hr == S_OK, "got %08x\n", hr );
+
+ str = (void*)0xdeadbeef;
+ hr = IXMLDOMComment_get_prefix(comment, &str);
+ ok(hr == S_FALSE, "got %08x\n", hr);
+ ok( str == 0, "got %p\n", str);
+
+ hr = IXMLDOMComment_get_prefix(comment, NULL);
+ ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ IXMLDOMComment_Release(comment);
+
+ /* 4. fragment */
+ hr = IXMLDOMDocument_createDocumentFragment(doc, &fragment);
+ ok(hr == S_OK, "got %08x\n", hr );
+
+ str = (void*)0xdeadbeef;
+ hr = IXMLDOMDocumentFragment_get_prefix(fragment, &str);
+ ok(hr == S_FALSE, "got %08x\n", hr);
+ ok( str == 0, "got %p\n", str);
+
+ hr = IXMLDOMDocumentFragment_get_prefix(fragment, NULL);
+ ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ IXMLDOMDocumentFragment_Release(fragment);
+
/* no prefix */
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &element);
ok( hr == S_OK, "got 0x%08x\n", hr);
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
index a55a515..0fd8b42 100644
--- a/dlls/msxml3/text.c
+++ b/dlls/msxml3/text.c
@@ -514,10 +514,11 @@ static HRESULT WINAPI domtext_get_namespaceURI(
static HRESULT WINAPI domtext_get_prefix(
IXMLDOMText *iface,
- BSTR* p)
+ BSTR* prefix)
{
domtext *This = impl_from_IXMLDOMText( iface );
- return IXMLDOMNode_get_prefix( IXMLDOMNode_from_impl(&This->node), p );
+ TRACE("(%p)->(%p)\n", This, prefix);
+ return return_null_bstr( prefix );
}
static HRESULT WINAPI domtext_get_baseName(
--
1.5.6.5
--------------070902090900000704090203--
More information about the wine-patches
mailing list