Robert Shearman : rpcrt4:
Raise an exception if IRpcChannelBuffer_GetBuffer fails.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Sep 7 05:07:11 CDT 2006
Module: wine
Branch: master
Commit: a6e545a27ce0acfb5f5db325fbd445ee9e27ae38
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a6e545a27ce0acfb5f5db325fbd445ee9e27ae38
Author: Robert Shearman <rob at codeweavers.com>
Date: Thu Aug 31 17:14:34 2006 +0100
rpcrt4: Raise an exception if IRpcChannelBuffer_GetBuffer fails.
Make StdProxy_GetIID and StdProxy_GetChannel return void.
Don't bother checking for This and pRpcChannelBuffer being NULL as
native doesn't.
---
dlls/rpcrt4/cproxy.c | 25 ++++++++++++-------------
1 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/dlls/rpcrt4/cproxy.c b/dlls/rpcrt4/cproxy.c
index 280dbe1..da5deb9 100644
--- a/dlls/rpcrt4/cproxy.c
+++ b/dlls/rpcrt4/cproxy.c
@@ -284,24 +284,22 @@ static const IRpcProxyBufferVtbl StdProx
StdProxy_Disconnect
};
-static HRESULT StdProxy_GetChannel(LPVOID iface,
+static void StdProxy_GetChannel(LPVOID iface,
LPRPCCHANNELBUFFER *ppChannel)
{
ICOM_THIS_MULTI(StdProxyImpl,PVtbl,iface);
TRACE("(%p)->GetChannel(%p) %s\n",This,ppChannel,This->name);
*ppChannel = This->pChannel;
- return S_OK;
}
-static HRESULT StdProxy_GetIID(LPVOID iface,
+static void StdProxy_GetIID(LPVOID iface,
const IID **ppiid)
{
ICOM_THIS_MULTI(StdProxyImpl,PVtbl,iface);
TRACE("(%p)->GetIID(%p) %s\n",This,ppiid,This->name);
*ppiid = This->piid;
- return S_OK;
}
HRESULT WINAPI IUnknown_QueryInterface_Proxy(LPUNKNOWN iface,
@@ -336,16 +334,12 @@ void WINAPI NdrProxyInitialize(void *Thi
PMIDL_STUB_DESC pStubDescriptor,
unsigned int ProcNum)
{
- HRESULT hr;
-
TRACE("(%p,%p,%p,%p,%d)\n", This, pRpcMsg, pStubMsg, pStubDescriptor, ProcNum);
NdrClientInitializeNew(pRpcMsg, pStubMsg, pStubDescriptor, ProcNum);
- if (This) StdProxy_GetChannel(This, &pStubMsg->pRpcChannelBuffer);
- if (pStubMsg->pRpcChannelBuffer) {
- hr = IRpcChannelBuffer_GetDestCtx(pStubMsg->pRpcChannelBuffer,
- &pStubMsg->dwDestContext,
- &pStubMsg->pvDestContext);
- }
+ StdProxy_GetChannel(This, &pStubMsg->pRpcChannelBuffer);
+ IRpcChannelBuffer_GetDestCtx(pStubMsg->pRpcChannelBuffer,
+ &pStubMsg->dwDestContext,
+ &pStubMsg->pvDestContext);
TRACE("channel=%p\n", pStubMsg->pRpcChannelBuffer);
}
@@ -361,10 +355,15 @@ void WINAPI NdrProxyGetBuffer(void *This
TRACE("(%p,%p)\n", This, pStubMsg);
pStubMsg->RpcMsg->BufferLength = pStubMsg->BufferLength;
pStubMsg->dwStubPhase = PROXY_GETBUFFER;
- hr = StdProxy_GetIID(This, &riid);
+ StdProxy_GetIID(This, &riid);
hr = IRpcChannelBuffer_GetBuffer(pStubMsg->pRpcChannelBuffer,
(RPCOLEMESSAGE*)pStubMsg->RpcMsg,
riid);
+ if (FAILED(hr))
+ {
+ RpcRaiseException(hr);
+ return;
+ }
pStubMsg->BufferStart = pStubMsg->RpcMsg->Buffer;
pStubMsg->BufferEnd = pStubMsg->BufferStart + pStubMsg->BufferLength;
pStubMsg->Buffer = pStubMsg->BufferStart;
More information about the wine-cvs
mailing list