Jacek Caban : msxml3: Optimize bstr_from_xmlChar implementation.
Alexandre Julliard
julliard at winehq.org
Fri Aug 14 09:00:51 CDT 2009
Module: wine
Branch: master
Commit: 7447145d647c8d8eccb3f5b536ad7c55488298d9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7447145d647c8d8eccb3f5b536ad7c55488298d9
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Aug 14 12:23:05 2009 +0200
msxml3: Optimize bstr_from_xmlChar implementation.
---
dlls/msxml3/msxml_private.h | 15 ++++++++++++++-
dlls/msxml3/node.c | 19 -------------------
2 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index 917543d..357810d 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -59,7 +59,6 @@ xmlNodePtr xmlNodePtr_from_domnode( IXMLDOMNode *iface, xmlElementType type );
/* helpers */
extern xmlChar *xmlChar_from_wchar( LPWSTR str );
-extern BSTR bstr_from_xmlChar( const xmlChar *buf );
extern LONG xmldoc_add_ref( xmlDocPtr doc );
extern LONG xmldoc_release( xmlDocPtr doc );
@@ -87,6 +86,20 @@ static inline xmlnode *impl_from_IXMLDOMNode( IXMLDOMNode *iface )
extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument2 **document);
+static inline BSTR bstr_from_xmlChar(const xmlChar *str)
+{
+ BSTR ret = NULL;
+
+ if(str) {
+ DWORD len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)str, -1, NULL, 0);
+ ret = SysAllocStringLen(NULL, len-1);
+ if(ret)
+ MultiByteToWideChar( CP_UTF8, 0, (LPCSTR)str, -1, ret, len);
+ }
+
+ return ret;
+}
+
#endif
void* libxslt_handle;
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index 19fa4c5..1841e6e 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -247,25 +247,6 @@ static HRESULT WINAPI xmlnode_get_nodeName(
return S_OK;
}
-BSTR bstr_from_xmlChar( const xmlChar *buf )
-{
- DWORD len;
- LPWSTR str;
- BSTR bstr;
-
- if ( !buf )
- return NULL;
-
- len = MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) buf, -1, NULL, 0 );
- str = HeapAlloc( GetProcessHeap(), 0, len * sizeof (WCHAR) );
- if ( !str )
- return NULL;
- MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) buf, -1, str, len );
- bstr = SysAllocString( str );
- HeapFree( GetProcessHeap(), 0, str );
- return bstr;
-}
-
static HRESULT WINAPI xmlnode_get_nodeValue(
IXMLDOMNode *iface,
VARIANT* value)
More information about the wine-cvs
mailing list