79602: msxml3/mxwriter: Use provided qualified name length while writing end element tag

buildbot at kegel.com buildbot at kegel.com
Wed Oct 5 23:23:28 CDT 2011


This is an experimental automated build and test service.
Please feel free to ignore this email while we work the kinks out.

For more info about this message, see http://wiki.winehq.org/BuildBot

The Buildbot has detected a failed build on builder runtests-ati while building Wine.
Full details are available at: http://buildbot.kegel.com/builders/runtests-ati/builds/148 (though maybe not for long, as I'm still reinstalling the buildbot periodically while experimenting)
BUILD FAILED: failed git

Errors:
error: patch failed: dlls/msxml3/mxwriter.c:822
error: dlls/msxml3/mxwriter.c: patch does not apply
error: patch failed: dlls/msxml3/tests/saxreader.c:2069
error: dlls/msxml3/tests/saxreader.c: patch does not apply

-------------- next part --------------
From: Nikolay Sivov <nsivov at codeweavers.com>
Subject: msxml3/mxwriter: Use provided qualified name length while writing end element tag
Message-Id: <4E8CC6AC.3080909 at codeweavers.com>
Date: Wed, 05 Oct 2011 16:05:48 -0500

Use provided qualified name length while writing end element tag

From 3aedc5dec410208171a5951bf31eeb949dbb2d96 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed, 5 Oct 2011 16:04:04 -0500
Subject: [PATCH 11/11] Use provided qualified name length while writing end element tag

---
 dlls/msxml3/mxwriter.c        |   14 +++++++-------
 dlls/msxml3/tests/saxreader.c |   13 ++++++++++++-
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c
index b08fd0b..a863336 100644
--- a/dlls/msxml3/mxwriter.c
+++ b/dlls/msxml3/mxwriter.c
@@ -822,28 +822,28 @@ static HRESULT WINAPI mxwriter_saxcontent_endElement(
     int nQName)
 {
     mxwriter *This = impl_from_ISAXContentHandler( iface );
-    xmlChar *s;
 
-    TRACE("(%p)->(%s %s %s)\n", This, debugstr_wn(namespaceUri, nnamespaceUri),
-        debugstr_wn(local_name, nlocal_name), debugstr_wn(QName, nQName));
+    TRACE("(%p)->(%s:%d %s:%d %s:%d)\n", This, debugstr_wn(namespaceUri, nnamespaceUri), nnamespaceUri,
+        debugstr_wn(local_name, nlocal_name), nlocal_name, debugstr_wn(QName, nQName), nQName);
 
     if ((!namespaceUri || !local_name || !QName) && This->class_version != MSXML6)
         return E_INVALIDARG;
 
-    s = xmlchar_from_wchar(QName);
-
-    if (This->element && QName && !strcmpW(This->element, QName))
+    if (This->element && QName && !strncmpW(This->element, QName, nQName))
     {
         xmlOutputBufferWriteString(This->buffer, "/>");
     }
     else
     {
+        xmlChar *s = xmlchar_from_wcharn(QName, nQName);
+
         xmlOutputBufferWriteString(This->buffer, "</");
         xmlOutputBufferWriteString(This->buffer, (char*)s);
         xmlOutputBufferWriteString(This->buffer, ">");
+
+        heap_free(s);
     }
 
-    heap_free(s);
     set_element_name(This, NULL, 0);
 
     return S_OK;
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index 6493776..c52e03b 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -2069,9 +2069,20 @@ static void test_mxwriter_startendelement(void)
     ok(!lstrcmpW(_bstr_("<abc>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
     VariantClear(&dest);
 
+    ISAXContentHandler_endDocument(content);
+    IMXWriter_flush(writer);
+
+    hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("abdcdef"), 3);
+    EXPECT_HR(hr, S_OK);
+    V_VT(&dest) = VT_EMPTY;
+    hr = IMXWriter_get_output(writer, &dest);
+    EXPECT_HR(hr, S_OK);
+    ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
+    ok(!lstrcmpW(_bstr_("<abc></abd>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+    VariantClear(&dest);
+
     ISAXContentHandler_Release(content);
     IMXWriter_Release(writer);
-
     free_bstrs();
 }
 
-- 
1.7.1



More information about the wine-tests-results mailing list