Dmitry Timoshkov : ole32: Remove an optimization from DataCache_Save() that copies whole original storage.

Alexandre Julliard julliard at winehq.org
Fri Oct 20 15:09:36 CDT 2017


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

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Fri Oct 20 17:43:28 2017 +0800

ole32: Remove an optimization from DataCache_Save() that copies whole original storage.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ole32/datacache.c  | 6 ------
 dlls/ole32/tests/ole2.c | 7 ++-----
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c
index 808c2dc..360ecd8 100644
--- a/dlls/ole32/datacache.c
+++ b/dlls/ole32/datacache.c
@@ -1665,12 +1665,6 @@ static HRESULT WINAPI DataCache_Save(
         }
     }
 
-    /* this is a shortcut if nothing changed */
-    if (!dirty && !fSameAsLoad && This->presentationStorage)
-    {
-        return IStorage_CopyTo(This->presentationStorage, 0, NULL, NULL, pStg);
-    }
-
     /* assign stream numbers to the cache entries */
     LIST_FOR_EACH_ENTRY(cache_entry, &This->cache_list, DataCacheEntry, entry)
     {
diff --git a/dlls/ole32/tests/ole2.c b/dlls/ole32/tests/ole2.c
index 16c6d88..08b6a27 100644
--- a/dlls/ole32/tests/ole2.c
+++ b/dlls/ole32/tests/ole2.c
@@ -2980,9 +2980,7 @@ static HRESULT WINAPI Storage_SetElementTimes(IStorage *iface, LPCOLESTR pwcsNam
 
 static HRESULT WINAPI Storage_SetClass(IStorage *iface, REFCLSID clsid)
 {
-todo_wine_if(!expect_Storage_SetClass)
     CHECK_EXPECT(Storage_SetClass);
-todo_wine_if(IsEqualIID(Storage_SetClass_CLSID, &CLSID_NULL))
     ok(IsEqualIID(clsid, Storage_SetClass_CLSID), "expected %s, got %s\n",
        wine_dbgstr_guid(Storage_SetClass_CLSID), wine_dbgstr_guid(clsid));
     return S_OK;
@@ -3491,7 +3489,6 @@ static void check_storage_contents(IStorage *stg, const struct storage_def *stg_
 
     hr = IStorage_Stat(stg, &stat, STATFLAG_NONAME);
     ok(hr == S_OK, "unexpected %#x\n", hr);
-todo_wine_if(!IsEqualCLSID(stg_def->clsid, &stat.clsid))
     ok(IsEqualCLSID(stg_def->clsid, &stat.clsid), "expected %s, got %s\n",
        wine_dbgstr_guid(stg_def->clsid), wine_dbgstr_guid(&stat.clsid));
 
@@ -3702,10 +3699,10 @@ todo_wine_if(test_data[i].in == &stg_def_4 || test_data[i].in == &stg_def_8 || t
 
         enumerated_streams = matched_streams = -1;
         check_storage_contents(doc2, test_data[i].out, &enumerated_streams, &matched_streams);
-todo_wine
+todo_wine_if(!(test_data[i].in == &stg_def_0 || test_data[i].in == &stg_def_1 || test_data[i].in == &stg_def_2))
         ok(enumerated_streams == matched_streams, "%d out: enumerated %d != matched %d\n", i,
            enumerated_streams, matched_streams);
-todo_wine
+todo_wine_if(!(test_data[i].in == &stg_def_0 || test_data[i].in == &stg_def_5))
         ok(enumerated_streams == test_data[i].out->stream_count, "%d: saved streams %d != def streams %d\n", i,
             enumerated_streams, test_data[i].out->stream_count);
 




More information about the wine-cvs mailing list