[PATCH v3 2/6] xmllite: Qualified name matches local for xml decl and PI nodes.

Jeff Smith whydoubt at gmail.com
Tue Oct 29 14:36:00 CDT 2019


Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
 dlls/xmllite/reader.c       | 10 +++++-----
 dlls/xmllite/tests/reader.c |  3 ++-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index dd033f37c5..701dd9cc31 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -1385,7 +1385,6 @@ static HRESULT reader_parse_xmldecl(xmlreader *reader)
     reader->nodetype = XmlNodeType_XmlDeclaration;
     reader->empty_element.position = position;
     reader_strvaldup(reader, &strval_xml, &reader->empty_element.localname);
-    reader_strvaldup(reader, &strval_xml, &reader->empty_element.qname);
 
     return S_OK;
 }
@@ -1620,8 +1619,6 @@ static HRESULT reader_parse_pi(xmlreader *reader)
         if (FAILED(hr)) return hr;
         reader_free_strvalued(reader, &reader->empty_element.localname);
         reader_strvaldup(reader, &target, &reader->empty_element.localname);
-        reader_free_strvalued(reader, &reader->empty_element.qname);
-        reader_strvaldup(reader, &target, &reader->empty_element.qname);
         reader_set_strvalue(reader, &strval_empty);
         reader->resumestate = XmlReadResumeState_PIBody;
         reader->resume[XmlReadResume_Body] = reader_get_cur(reader);
@@ -3141,11 +3138,14 @@ static HRESULT WINAPI xmlreader_GetQualifiedName(IXmlReader* iface, LPCWSTR *nam
         }
         break;
     case XmlNodeType_DocumentType:
-    case XmlNodeType_XmlDeclaration:
-    case XmlNodeType_ProcessingInstruction:
         *name = This->empty_element.qname.str;
         *len = This->empty_element.qname.len;
         break;
+    case XmlNodeType_XmlDeclaration:
+    case XmlNodeType_ProcessingInstruction:
+        *name = This->empty_element.localname.str;
+        *len = This->empty_element.localname.len;
+        break;
     default:
         FIXME("Unhandled node type %d\n", nodetype);
         *name = NULL;
diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c
index c93ee01fa1..e421178c4e 100644
--- a/dlls/xmllite/tests/reader.c
+++ b/dlls/xmllite/tests/reader.c
@@ -2534,7 +2534,8 @@ static void test_string_pointers(void)
     ok(empty == reader_value(reader, ""), "empty != value\n");
     ok(empty == reader_prefix(reader, ""), "empty != prefix\n");
     xml = reader_name(reader, "xml");
-    ptr = reader_qname(reader, "xml"); todo_wine ok(xml == ptr, "xml != qname\n");
+    ptr = reader_qname(reader, "xml");
+    ok(xml == ptr, "xml != qname\n");
     ok(empty == reader_namespace(reader, ""), "empty != namespace\n");
 
     next_attribute(reader);
-- 
2.21.0




More information about the wine-devel mailing list