Module: wine Branch: master Commit: 7a22365674612122896ec5005406a45c25995de4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7a22365674612122896ec50054...
Author: Piotr Caban piotr@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; }