Commit c23db594 authored by Sebastian Lackner's avatar Sebastian Lackner Committed by Alexandre Julliard

ole32: Fix an invalid usage of InterlockedCompareExchange.

parent 68528519
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment