[PATCH 1/1] Actually try to use IPersistStream if it's available

Nikolay Sivov nsivov at codeweavers.com
Wed Oct 27 16:27:06 CDT 2010


---
 dlls/msxml3/saxreader.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index a0c821e..5f04227 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -2043,12 +2043,24 @@ static HRESULT internal_parse(
                 SysFreeString(bstrData);
                 break;
             }
+
             if(IUnknown_QueryInterface(V_UNKNOWN(&varInput),
                         &IID_IPersistStream, (void**)&persistStream) == S_OK)
             {
+                hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
+                if(hr != S_OK)
+                {
+                    IPersistStream_Release(persistStream);
+                    return hr;
+                }
+
                 hr = IPersistStream_Save(persistStream, stream, TRUE);
                 IPersistStream_Release(persistStream);
-                if(hr != S_OK) break;
+                if(hr != S_OK)
+                {
+                    IStream_Release(stream);
+                    break;
+                }
             }
             if(stream || IUnknown_QueryInterface(V_UNKNOWN(&varInput),
                         &IID_IStream, (void**)&stream) == S_OK)
-- 
1.5.6.5


--------------030903090007090102090206--



More information about the wine-patches mailing list