Huw Davies : rpcrt4: Tidy up CStdStubBuffer_AddRef,Release.
Module: wine Branch: master Commit: dffd3e5034079febfb07855caa693ac03f316e27 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=dffd3e5034079febfb07855c... Author: Huw Davies <huw(a)codeweavers.com> Date: Wed Aug 30 15:16:29 2006 +0100 rpcrt4: Tidy up CStdStubBuffer_AddRef,Release. --- dlls/rpcrt4/cstub.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/rpcrt4/cstub.c b/dlls/rpcrt4/cstub.c index 259956a..38a8a29 100644 --- a/dlls/rpcrt4/cstub.c +++ b/dlls/rpcrt4/cstub.c @@ -105,23 +105,26 @@ ULONG WINAPI CStdStubBuffer_AddRef(LPRPC { CStdStubBuffer *This = (CStdStubBuffer *)iface; TRACE("(%p)->AddRef()\n",This); - return ++(This->RefCount); + return InterlockedIncrement(&This->RefCount); } ULONG WINAPI NdrCStdStubBuffer_Release(LPRPCSTUBBUFFER iface, LPPSFACTORYBUFFER pPSF) { CStdStubBuffer *This = (CStdStubBuffer *)iface; + ULONG refs; + TRACE("(%p)->Release()\n",This); - if (!--(This->RefCount)) { + refs = InterlockedDecrement(&This->RefCount); + if (!refs) + { IRpcStubBuffer_Disconnect(iface); if(This->pPSFactory) IPSFactoryBuffer_Release(This->pPSFactory); HeapFree(GetProcessHeap(),0,This); - return 0; } - return This->RefCount; + return refs; } ULONG WINAPI NdrCStdStubBuffer2_Release(LPRPCSTUBBUFFER iface,
participants (1)
-
Alexandre Julliard