[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