[PATCH] Correct createElement return value for an invalid type

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Fri Feb 1 04:25:37 CST 2008


---
 dlls/msxml3/tests/xmldoc.c |    4 ++--
 dlls/msxml3/xmldoc.c       |    3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/msxml3/tests/xmldoc.c b/dlls/msxml3/tests/xmldoc.c
index 1186c9b..89c73cf 100644
--- a/dlls/msxml3/tests/xmldoc.c
+++ b/dlls/msxml3/tests/xmldoc.c
@@ -270,8 +270,8 @@ static void test_createElement(void)
     V_I4(&vType) = -1;
     V_VT(&vName) = VT_NULL;
     hr = IXMLDocument_createElement(doc, vType, vName, &element);
-    ok(hr == S_OK, "Expected S_OK, got %d\n", hr);
-    ok(element != NULL, "Expected non-NULL element\n");
+    ok(hr == E_NOTIMPL, "Expected S_OK, got %d\n", hr);
+    ok(element == NULL, "Expected NULL element\n");
 
     if (element != NULL)
     {
diff --git a/dlls/msxml3/xmldoc.c b/dlls/msxml3/xmldoc.c
index a4c0850..26c16d3 100644
--- a/dlls/msxml3/xmldoc.c
+++ b/dlls/msxml3/xmldoc.c
@@ -452,6 +452,9 @@ static HRESULT WINAPI xmldoc_createElement(IXMLDocument *iface, VARIANT vType,
 
     if (V_VT(&vType) != VT_I4)
         return E_INVALIDARG;
+        
+    if(type_msxml_to_libxml(V_I4(&vType)) == -1)
+        return E_NOTIMPL;
 
     node = xmlNewNode(NULL, empty);
     node->type = type_msxml_to_libxml(V_I4(&vType));
-- 
1.5.3.8


--------------050307080803090800000407--




More information about the wine-patches mailing list