[PATCH 6/6] Speed up a IPersistStreamInit::Save() by querying for BSTR length

Nikolay Sivov nsivov at codeweavers.com
Sun Jul 18 08:18:13 CDT 2010


---
 dlls/msxml3/domdoc.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 0007503..f9f02e0 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -415,22 +415,20 @@ static HRESULT WINAPI domdoc_IPersistStreamInit_Load(
 }
 
 static HRESULT WINAPI domdoc_IPersistStreamInit_Save(
-    IPersistStreamInit *iface, LPSTREAM pStm, BOOL fClearDirty)
+    IPersistStreamInit *iface, IStream *stream, BOOL clr_dirty)
 {
     domdoc *This = impl_from_IPersistStreamInit(iface);
-    HRESULT hr;
     BSTR xmlString;
+    HRESULT hr;
 
-    TRACE("(%p)->(%p %d)\n", This, pStm, fClearDirty);
+    TRACE("(%p)->(%p %d)\n", This, stream, clr_dirty);
 
     hr = IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(&This->node), &xmlString );
     if(hr == S_OK)
     {
-        DWORD count;
-        DWORD len = strlenW(xmlString) * sizeof(WCHAR);
-
-        hr = IStream_Write( pStm, xmlString, len, &count );
+        DWORD len = SysStringLen(xmlString) * sizeof(WCHAR);
 
+        hr = IStream_Write( stream, xmlString, len, NULL );
         SysFreeString(xmlString);
     }
 
-- 
1.5.6.5


--------------040502000208060509020907--



More information about the wine-patches mailing list