Vincent Povirk : ole32: Add DestroyDirEntry to the storage vtable.

Alexandre Julliard julliard at winehq.org
Tue Dec 8 11:10:36 CST 2009


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

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Mon Nov 30 09:50:15 2009 -0600

ole32: Add DestroyDirEntry to the storage vtable.

---

 dlls/ole32/storage32.c |   23 ++++++++++++++---------
 dlls/ole32/storage32.h |    7 +++++++
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 309c2dd..53c2c87 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -184,10 +184,6 @@ static HRESULT removeFromTree(
  * Declaration of the functions used to manipulate DirEntry
  */
 
-static HRESULT destroyDirEntry(
-  StorageImpl *storage,
-  DirRef index);
-
 static HRESULT insertIntoTree(
   StorageBaseImpl *This,
   DirRef        parentStorageIndex,
@@ -1244,12 +1240,13 @@ static HRESULT StorageImpl_CreateDirEntry(
  *
  * Mark a directory entry in the file as free.
  */
-static HRESULT destroyDirEntry(
-  StorageImpl *storage,
+static HRESULT StorageImpl_DestroyDirEntry(
+  StorageBaseImpl *base,
   DirRef index)
 {
   HRESULT hr;
   BYTE emptyData[RAW_DIRENTRY_SIZE];
+  StorageImpl *storage = (StorageImpl*)base;
 
   memset(&emptyData, 0, RAW_DIRENTRY_SIZE);
 
@@ -1820,8 +1817,7 @@ static HRESULT WINAPI StorageBaseImpl_DestroyElement(
    * Invalidate the entry
    */
   if (SUCCEEDED(hr))
-    destroyDirEntry(This->ancestorStorage,
-                    entryToDeleteRef);
+    StorageBaseImpl_DestroyDirEntry(This, entryToDeleteRef);
 
   return hr;
 }
@@ -2227,6 +2223,7 @@ static const StorageBaseImplVtbl StorageImpl_BaseVtbl =
   StorageImpl_CreateDirEntry,
   StorageImpl_BaseWriteDirEntry,
   StorageImpl_BaseReadDirEntry,
+  StorageImpl_DestroyDirEntry
 };
 
 static HRESULT StorageImpl_Construct(
@@ -3667,6 +3664,13 @@ static HRESULT StorageInternalImpl_ReadDirEntry(StorageBaseImpl *base,
     index, data);
 }
 
+static HRESULT StorageInternalImpl_DestroyDirEntry(StorageBaseImpl *base,
+  DirRef index)
+{
+  return StorageBaseImpl_DestroyDirEntry(&base->ancestorStorage->base,
+    index);
+}
+
 /******************************************************************************
 **
 ** Storage32InternalImpl_Commit
@@ -4112,7 +4116,8 @@ static const StorageBaseImplVtbl StorageInternalImpl_BaseVtbl =
   StorageInternalImpl_Destroy,
   StorageInternalImpl_CreateDirEntry,
   StorageInternalImpl_WriteDirEntry,
-  StorageInternalImpl_ReadDirEntry
+  StorageInternalImpl_ReadDirEntry,
+  StorageInternalImpl_DestroyDirEntry
 };
 
 /******************************************************************************
diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h
index fdac6a5..12cff71 100644
--- a/dlls/ole32/storage32.h
+++ b/dlls/ole32/storage32.h
@@ -251,6 +251,7 @@ struct StorageBaseImplVtbl {
   HRESULT (*CreateDirEntry)(StorageBaseImpl*,const DirEntry*,DirRef*);
   HRESULT (*WriteDirEntry)(StorageBaseImpl*,DirRef,const DirEntry*);
   HRESULT (*ReadDirEntry)(StorageBaseImpl*,DirRef,DirEntry*);
+  HRESULT (*DestroyDirEntry)(StorageBaseImpl*,DirRef);
 };
 
 static inline void StorageBaseImpl_Destroy(StorageBaseImpl *This)
@@ -276,6 +277,12 @@ static inline HRESULT StorageBaseImpl_ReadDirEntry(StorageBaseImpl *This,
   return This->baseVtbl->ReadDirEntry(This, index, data);
 }
 
+static inline HRESULT StorageBaseImpl_DestroyDirEntry(StorageBaseImpl *This,
+  DirRef index)
+{
+  return This->baseVtbl->DestroyDirEntry(This, index);
+}
+
 /****************************************************************************
  * StorageBaseImpl stream list handlers
  */




More information about the wine-cvs mailing list