Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
4f0d36d9
Commit
4f0d36d9
authored
Apr 23, 2014
by
Vincent Povirk
Committed by
Alexandre Julliard
May 05, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Initial implementation of transaction locking.
parent
b4ade51a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
2 deletions
+30
-2
storage32.c
dlls/ole32/storage32.c
+0
-0
storage32.h
dlls/ole32/storage32.h
+28
-0
storage32.c
dlls/ole32/tests/storage32.c
+2
-2
No files found.
dlls/ole32/storage32.c
View file @
4f0d36d9
This diff is collapsed.
Click to expand it.
dlls/ole32/storage32.h
View file @
4f0d36d9
...
...
@@ -51,6 +51,7 @@ static const ULONG OFFSET_SMALLBLOCKSIZEBITS = 0x00000020;
static
const
ULONG
OFFSET_DIRSECTORCOUNT
=
0x00000028
;
static
const
ULONG
OFFSET_BBDEPOTCOUNT
=
0x0000002C
;
static
const
ULONG
OFFSET_ROOTSTARTBLOCK
=
0x00000030
;
static
const
ULONG
OFFSET_TRANSACTIONSIG
=
0x00000034
;
static
const
ULONG
OFFSET_SMALLBLOCKLIMIT
=
0x00000038
;
static
const
ULONG
OFFSET_SBDEPOTSTART
=
0x0000003C
;
static
const
ULONG
OFFSET_SBDEPOTCOUNT
=
0x00000040
;
...
...
@@ -246,6 +247,10 @@ struct StorageBaseImplVtbl {
HRESULT
(
*
StreamWriteAt
)(
StorageBaseImpl
*
,
DirRef
,
ULARGE_INTEGER
,
ULONG
,
const
void
*
,
ULONG
*
);
HRESULT
(
*
StreamSetSize
)(
StorageBaseImpl
*
,
DirRef
,
ULARGE_INTEGER
);
HRESULT
(
*
StreamLink
)(
StorageBaseImpl
*
,
DirRef
,
DirRef
);
HRESULT
(
*
GetTransactionSig
)(
StorageBaseImpl
*
,
ULONG
*
,
BOOL
);
HRESULT
(
*
SetTransactionSig
)(
StorageBaseImpl
*
,
ULONG
);
HRESULT
(
*
LockTransaction
)(
StorageBaseImpl
*
);
HRESULT
(
*
UnlockTransaction
)(
StorageBaseImpl
*
);
};
static
inline
void
StorageBaseImpl_Destroy
(
StorageBaseImpl
*
This
)
...
...
@@ -323,6 +328,28 @@ static inline HRESULT StorageBaseImpl_StreamLink(StorageBaseImpl *This,
return
This
->
baseVtbl
->
StreamLink
(
This
,
dst
,
src
);
}
static
inline
HRESULT
StorageBaseImpl_GetTransactionSig
(
StorageBaseImpl
*
This
,
ULONG
*
result
,
BOOL
refresh
)
{
return
This
->
baseVtbl
->
GetTransactionSig
(
This
,
result
,
refresh
);
}
static
inline
HRESULT
StorageBaseImpl_SetTransactionSig
(
StorageBaseImpl
*
This
,
ULONG
value
)
{
return
This
->
baseVtbl
->
SetTransactionSig
(
This
,
value
);
}
static
inline
HRESULT
StorageBaseImpl_LockTransaction
(
StorageBaseImpl
*
This
)
{
return
This
->
baseVtbl
->
LockTransaction
(
This
);
}
static
inline
HRESULT
StorageBaseImpl_UnlockTransaction
(
StorageBaseImpl
*
This
)
{
return
This
->
baseVtbl
->
UnlockTransaction
(
This
);
}
/****************************************************************************
* StorageBaseImpl stream list handlers
*/
...
...
@@ -359,6 +386,7 @@ struct StorageImpl
ULONG
extBigBlockDepotLocationsSize
;
ULONG
extBigBlockDepotCount
;
ULONG
bigBlockDepotStart
[
COUNT_BBDEPOTINHEADER
];
ULONG
transactionSig
;
ULONG
extBlockDepotCached
[
MAX_BIG_BLOCK_SIZE
/
4
];
ULONG
indexExtBlockDepotCached
;
...
...
dlls/ole32/tests/storage32.c
View file @
4f0d36d9
...
...
@@ -3491,7 +3491,7 @@ static void test_transacted_shared(void)
/* commit fails because we're out of date */
r
=
IStorage_Commit
(
stgrw
,
STGC_ONLYIFCURRENT
);
todo_wine
ok
(
r
==
STG_E_NOTCURRENT
,
"IStorage->Commit failed %x
\n
"
,
r
);
ok
(
r
==
STG_E_NOTCURRENT
,
"IStorage->Commit failed %x
\n
"
,
r
);
/* unless we force it */
r
=
IStorage_Commit
(
stgrw
,
STGC_DEFAULT
);
...
...
@@ -3515,7 +3515,7 @@ static void test_transacted_shared(void)
/* and committing fails forever */
r
=
IStorage_Commit
(
stg
,
STGC_ONLYIFCURRENT
);
todo_wine
ok
(
r
==
STG_E_NOTCURRENT
,
"IStorage->Commit failed %x
\n
"
,
r
);
ok
(
r
==
STG_E_NOTCURRENT
,
"IStorage->Commit failed %x
\n
"
,
r
);
IStream_Release
(
stm
);
...
...
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