Nikolay Sivov : xmllite/reader: Fix writing back resolved character reference value.

Alexandre Julliard julliard at winehq.org
Fri Mar 3 14:20:35 CST 2017


Module: wine
Branch: master
Commit: 107615da7f07cfbc69c8f23c3c416c60fc27a9c8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=107615da7f07cfbc69c8f23c3c416c60fc27a9c8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Mar  3 00:11:28 2017 +0300

xmllite/reader: Fix writing back resolved character reference value.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/xmllite/reader.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index 9bb0d56..a880bee 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -2054,8 +2054,12 @@ static HRESULT reader_parse_reference(xmlreader *reader)
         /* normalize */
         if (is_wchar_space(ch)) ch = ' ';
 
-        len = buffer->written - ((char*)ptr - buffer->data) - sizeof(WCHAR);
-        memmove(start+1, ptr+1, len);
+        ptr = reader_get_ptr(reader);
+        start = reader_get_ptr2(reader, cur);
+        len = buffer->written - ((char *)ptr - buffer->data);
+        memmove(start + 1, ptr + 1, len);
+
+        buffer->written -= (reader_get_cur(reader) - cur) * sizeof(WCHAR);
         buffer->cur = cur + 1;
 
         *start = ch;




More information about the wine-cvs mailing list