Robert Shearman wrote:
Andrew Talbot wrote:
diff -urN a/dlls/ole32/rpc.c b/dlls/ole32/rpc.c --- a/dlls/ole32/rpc.c 2007-03-28 12:43:32.000000000 +0100 +++ b/dlls/ole32/rpc.c 2007-04-12 20:20:48.000000000 +0100 @@ -1352,7 +1352,7 @@ TRACE("ipid = %s, iMethod = %d\n", debugstr_guid(&ipid), msg->ProcNum);
params = HeapAlloc(GetProcessHeap(), 0, sizeof(*params)); - if (!params) return RpcRaiseException(E_OUTOFMEMORY); + if (!params) RpcRaiseException(E_OUTOFMEMORY);
hr = ipid_get_dispatch_params(&ipid, &apt, ¶ms->stub, ¶ms->chan, ¶ms->iid, ¶ms->iface); @@ -1360,7 +1360,7 @@ { ERR("no apartment found for ipid %s\n", debugstr_guid(&ipid)); HeapFree(GetProcessHeap(), 0, params); - return RpcRaiseException(hr); + RpcRaiseException(hr); }
params->msg = (RPCOLEMESSAGE *)msg;
You've changed the code paths here.
Hi Rob, I'm not quite sure what you mean. Are you implying that I need return statements after the RpcRaiseException() calls? Can one not just rely on the fact that RpcRaiseException() does not return to the caller? -- Andy.