On May 27, 2006 03:51 pm, Robert Shearman wrote:
Bang Jun-Young wrote:
Hi,
I wonder how this has been possible so far:
snip
if (!params) return RpcRaiseException(E_OUTOFMEMORY);
snip
debugstr_guid(&ipid)); return RpcRaiseException(hr);
snip
dispatch_rpc() shouldn't return anything since it's a void function, but it actually does.
Thank you for reviewing the code.
RpcRaiseException is also a void function.
Rather than write: RpcRaiseException(hr); return;
I chose to write: return RpcRaiseException(hr);
I didn't think the latter would be confusing as I assumed everyone would know that C compilers would warn if you tried to return a vale from a void function. Also, even if it did return something when it shouldn't, it wouldn't affect the calling function on x86 since the eax register would have been assumed to be trashed anyway.
I find it confusing and the C standard (1999) explicitly states that it is not permitted.