[PATCH] Remove potential reference count races

Max TenEyck Woodbury max at mtew.isa-geek.net
Sun Oct 28 19:34:47 CDT 2012


On 10/28/2012 12:07 PM, Nikolay Sivov wrote:
> On 10/28/2012 18:00, Max TenEyck Woodbury wrote:
>> On 10/28/2012 03:13 AM, Nikolay Sivov wrote:
>>> On 10/28/2012 04:59, max at mtew.isa-geek.net wrote:
>>>> From: Max TenEyck Woodbury <max at mtew.isa-geek.net>
>>>>
>>>> ---
>>>>    dlls/shlwapi/thread.c |    4 ++--
>>>>    1 files changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/dlls/shlwapi/thread.c b/dlls/shlwapi/thread.c
>>>> index eb2c35d..43e0433 100644
>>>> --- a/dlls/shlwapi/thread.c
>>>> +++ b/dlls/shlwapi/thread.c
>>>> @@ -157,7 +157,7 @@ static ULONG WINAPI threadref_AddRef(IUnknown
>>>> *iface)
>>>>      threadref * This = impl_from_IUnknown(iface);
>>>>        TRACE("(%p)\n", This);
>>>> -  return InterlockedIncrement(This->ref);
>>>> +  return InterlockedIncrement(&This->ref);
>>>>    }
>>>>      static ULONG WINAPI threadref_Release(IUnknown *iface)
>>>> @@ -167,7 +167,7 @@ static ULONG WINAPI threadref_Release(IUnknown
>>>> *iface)
>>>>        TRACE("(%p)\n", This);
>>>>    -  refcount = InterlockedDecrement(This->ref);
>>>> +  refcount = InterlockedDecrement(&This->ref);
>>>>      if (!refcount)
>>>>          HeapFree(GetProcessHeap(), 0, This);
>>>>    
>>> Did you try to build this?
>>>
>>>
>> Yes, it built. I don't submit stuff that causes the compiler to barf
>> unless I am completely totally zonked from lack of sleep and this was
>> not what happened here.  I will admit that I have not looked at the
>> build and test logs closely, so there may be problems I missed.
>>
> These changes I wrong that's what I'm saying.

You could well be right about this one.  All the other '->ref's are LONG
or ULONG or DWORD and the '&' is necessary.  If this one is a pointer,
then I messed up.
> 
> P.S. please CC wine-devel list in your replies.
> 
Pushed the wrong button when setting up for the reply.  Apologies.




More information about the wine-devel mailing list