Sebastian Lackner : ole32: Fix an invalid usage of InterlockedCompareExchange.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 3 09:42:11 CST 2015
Module: wine
Branch: master
Commit: c23db594aacf69675ebd57936449c412c34f6050
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c23db594aacf69675ebd57936449c412c34f6050
Author: Sebastian Lackner <sebastian at fds-team.de>
Date: Tue Mar 3 05:39:46 2015 +0100
ole32: Fix an invalid usage of InterlockedCompareExchange.
---
dlls/ole32/marshal.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/ole32/marshal.c b/dlls/ole32/marshal.c
index b308600..c5c2023 100644
--- a/dlls/ole32/marshal.c
+++ b/dlls/ole32/marshal.c
@@ -805,11 +805,12 @@ static HRESULT proxy_manager_construct(
static inline void proxy_manager_set_context(struct proxy_manager *This, MSHCTX dest_context, void *dest_context_data)
{
- MSHCTX old_dest_context = This->dest_context;
+ MSHCTX old_dest_context;
MSHCTX new_dest_context;
do
{
+ old_dest_context = This->dest_context;
new_dest_context = old_dest_context;
/* "stronger" values overwrite "weaker" values. stronger values are
* ones that disable more optimisations */
@@ -853,7 +854,7 @@ static inline void proxy_manager_set_context(struct proxy_manager *This, MSHCTX
if (old_dest_context == new_dest_context) break;
- old_dest_context = InterlockedCompareExchange((PLONG)&This->dest_context, new_dest_context, old_dest_context);
+ new_dest_context = InterlockedCompareExchange((PLONG)&This->dest_context, new_dest_context, old_dest_context);
} while (new_dest_context != old_dest_context);
if (dest_context_data)
More information about the wine-cvs
mailing list