Piotr Caban : msxml3: Improve bstr_from_xmlCharN implementation.

Alexandre Julliard julliard at winehq.org
Mon Jul 19 11:05:31 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Sat Jul 17 14:06:53 2010 +0200

msxml3: Improve bstr_from_xmlCharN implementation.

---

 dlls/msxml3/saxreader.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index a09f4ea..5381d95 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -158,7 +158,6 @@ static int namespacePop(saxlocator *locator)
 static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len)
 {
     DWORD dLen;
-    LPWSTR str;
     BSTR bstr;
 
     if (!buf)
@@ -166,13 +165,11 @@ static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len)
 
     dLen = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, NULL, 0);
     if(len != -1) dLen++;
-    str = heap_alloc(dLen * sizeof (WCHAR));
-    if (!str)
+    bstr = SysAllocStringLen(NULL, dLen-1);
+    if (!bstr)
         return NULL;
-    MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, str, dLen);
-    if(len != -1) str[dLen-1] = '\0';
-    bstr = SysAllocString(str);
-    heap_free(str);
+    MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, bstr, dLen);
+    if(len != -1) bstr[dLen-1] = '\0';
 
     return bstr;
 }




More information about the wine-cvs mailing list