Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
42142200
Commit
42142200
authored
Dec 04, 2009
by
Vincent Povirk
Committed by
Alexandre Julliard
Dec 11, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Add Invalidate to the storage vtable.
parent
75fe6211
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
6 deletions
+25
-6
storage32.c
dlls/ole32/storage32.c
+19
-6
storage32.h
dlls/ole32/storage32.h
+6
-0
No files found.
dlls/ole32/storage32.c
View file @
42142200
...
...
@@ -91,6 +91,7 @@ typedef struct StorageInternalImpl StorageInternalImpl;
static
StorageInternalImpl
*
StorageInternalImpl_Construct
(
StorageBaseImpl
*
parentStorage
,
DWORD
openFlags
,
DirRef
storageDirEntry
);
static
void
StorageImpl_Destroy
(
StorageBaseImpl
*
iface
);
static
void
StorageImpl_Invalidate
(
StorageBaseImpl
*
iface
);
static
BOOL
StorageImpl_ReadBigBlock
(
StorageImpl
*
This
,
ULONG
blockIndex
,
void
*
buffer
);
static
BOOL
StorageImpl_WriteBigBlock
(
StorageImpl
*
This
,
ULONG
blockIndex
,
const
void
*
buffer
);
static
void
StorageImpl_SetNextBlockInChain
(
StorageImpl
*
This
,
ULONG
blockIndex
,
ULONG
nextBlock
);
...
...
@@ -116,7 +117,6 @@ static BOOL StorageImpl_ReadDWordFromBigBlock( StorageImpl* This,
static
BOOL
StorageBaseImpl_IsStreamOpen
(
StorageBaseImpl
*
stg
,
DirRef
streamEntry
);
static
BOOL
StorageBaseImpl_IsStorageOpen
(
StorageBaseImpl
*
stg
,
DirRef
storageEntry
);
static
void
StorageInternalImpl_Invalidate
(
StorageInternalImpl
*
This
);
/* OLESTREAM memory structure to use for Get and Put Routines */
/* Used for OleConvertIStorageToOLESTREAM and OleConvertOLESTREAMToIStorage */
...
...
@@ -1884,7 +1884,7 @@ static void StorageBaseImpl_DeleteAll(StorageBaseImpl * stg)
LIST_FOR_EACH_SAFE
(
cur
,
cur2
,
&
stg
->
storageHead
)
{
childstg
=
LIST_ENTRY
(
cur
,
StorageInternalImpl
,
ParentListEntry
);
Storage
InternalImpl_Invalidate
(
childstg
);
Storage
BaseImpl_Invalidate
(
&
childstg
->
base
);
}
}
...
...
@@ -1913,7 +1913,7 @@ static HRESULT deleteStorageContents(
{
if
(
stg
->
base
.
storageDirEntry
==
indexToDelete
)
{
Storage
InternalImpl_Invalidate
(
stg
);
Storage
BaseImpl_Invalidate
(
&
stg
->
base
);
}
}
...
...
@@ -2413,6 +2413,7 @@ static const IStorageVtbl Storage32Impl_Vtbl =
static
const
StorageBaseImplVtbl
StorageImpl_BaseVtbl
=
{
StorageImpl_Destroy
,
StorageImpl_Invalidate
,
StorageImpl_CreateDirEntry
,
StorageImpl_BaseWriteDirEntry
,
StorageImpl_BaseReadDirEntry
,
...
...
@@ -2652,12 +2653,21 @@ end:
return
hr
;
}
static
void
StorageImpl_Invalidate
(
StorageBaseImpl
*
iface
)
{
StorageImpl
*
This
=
(
StorageImpl
*
)
iface
;
StorageBaseImpl_DeleteAll
(
&
This
->
base
);
This
->
base
.
reverted
=
1
;
}
static
void
StorageImpl_Destroy
(
StorageBaseImpl
*
iface
)
{
StorageImpl
*
This
=
(
StorageImpl
*
)
iface
;
TRACE
(
"(%p)
\n
"
,
This
);
Storage
BaseImpl_DeleteAll
(
&
This
->
bas
e
);
Storage
Impl_Invalidate
(
ifac
e
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
pwcsName
);
...
...
@@ -3812,8 +3822,10 @@ SmallBlockChainStream* Storage32Impl_BigBlocksToSmallBlocks(
return
SmallBlockChainStream_Construct
(
This
,
NULL
,
streamEntryRef
);
}
static
void
StorageInternalImpl_Invalidate
(
Storage
InternalImpl
*
This
)
static
void
StorageInternalImpl_Invalidate
(
Storage
BaseImpl
*
base
)
{
StorageInternalImpl
*
This
=
(
StorageInternalImpl
*
)
base
;
if
(
!
This
->
base
.
reverted
)
{
TRACE
(
"Storage invalidated (stg=%p)
\n
"
,
This
);
...
...
@@ -3832,7 +3844,7 @@ static void StorageInternalImpl_Destroy( StorageBaseImpl *iface)
{
StorageInternalImpl
*
This
=
(
StorageInternalImpl
*
)
iface
;
StorageInternalImpl_Invalidate
(
This
);
StorageInternalImpl_Invalidate
(
&
This
->
base
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
}
...
...
@@ -4343,6 +4355,7 @@ static const IStorageVtbl Storage32InternalImpl_Vtbl =
static
const
StorageBaseImplVtbl
StorageInternalImpl_BaseVtbl
=
{
StorageInternalImpl_Destroy
,
StorageInternalImpl_Invalidate
,
StorageInternalImpl_CreateDirEntry
,
StorageInternalImpl_WriteDirEntry
,
StorageInternalImpl_ReadDirEntry
,
...
...
dlls/ole32/storage32.h
View file @
42142200
...
...
@@ -248,6 +248,7 @@ struct StorageBaseImpl
/* virtual methods for StorageBaseImpl objects */
struct
StorageBaseImplVtbl
{
void
(
*
Destroy
)(
StorageBaseImpl
*
);
void
(
*
Invalidate
)(
StorageBaseImpl
*
);
HRESULT
(
*
CreateDirEntry
)(
StorageBaseImpl
*
,
const
DirEntry
*
,
DirRef
*
);
HRESULT
(
*
WriteDirEntry
)(
StorageBaseImpl
*
,
DirRef
,
const
DirEntry
*
);
HRESULT
(
*
ReadDirEntry
)(
StorageBaseImpl
*
,
DirRef
,
DirEntry
*
);
...
...
@@ -262,6 +263,11 @@ static inline void StorageBaseImpl_Destroy(StorageBaseImpl *This)
This
->
baseVtbl
->
Destroy
(
This
);
}
static
inline
void
StorageBaseImpl_Invalidate
(
StorageBaseImpl
*
This
)
{
This
->
baseVtbl
->
Invalidate
(
This
);
}
static
inline
HRESULT
StorageBaseImpl_CreateDirEntry
(
StorageBaseImpl
*
This
,
const
DirEntry
*
newData
,
DirRef
*
index
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment