IRpcStubBuffer_Disconnect can be called more than once.

This commit is contained in:
Robert Shearman 2005-07-19 19:12:54 +00:00 committed by Alexandre Julliard
parent 28479ea4aa
commit b0b3080b2d
1 changed files with 6 additions and 3 deletions

View File

@ -100,8 +100,7 @@ ULONG WINAPI NdrCStdStubBuffer_Release(LPRPCSTUBBUFFER iface,
TRACE("(%p)->Release()\n",This);
if (!--(This->RefCount)) {
if(This->pvServerObject)
IUnknown_Release(This->pvServerObject);
IRpcStubBuffer_Disconnect(iface);
if(This->pPSFactory)
IPSFactoryBuffer_Release(This->pPSFactory);
HeapFree(GetProcessHeap(),0,This);
@ -123,7 +122,11 @@ void WINAPI CStdStubBuffer_Disconnect(LPRPCSTUBBUFFER iface)
{
CStdStubBuffer *This = (CStdStubBuffer *)iface;
TRACE("(%p)->Disconnect()\n",This);
This->pvServerObject = NULL;
if (This->pvServerObject)
{
IUnknown_Release(This->pvServerObject);
This->pvServerObject = NULL;
}
}
HRESULT WINAPI CStdStubBuffer_Invoke(LPRPCSTUBBUFFER iface,