Commit b0f85860 authored by Alexandre Julliard's avatar Alexandre Julliard

rpcrt4: Fix handling of complex types of return values on the client side.

parent 1c632ffe
......@@ -332,11 +332,8 @@ static void client_do_args(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat,
case PROXY_UNMARSHAL:
if (pParam->param_attributes.IsOut)
{
if (pParam->param_attributes.IsReturn)
call_unmarshaller(pStubMsg, &pRetVal, pTypeFormat, 0);
else
call_unmarshaller(pStubMsg, &pArg, pTypeFormat, 0);
TRACE("pRetVal = %p\n", pRetVal);
if (pParam->param_attributes.IsReturn) pArg = pRetVal;
call_unmarshaller(pStubMsg, &pArg, pTypeFormat, 0);
}
break;
default:
......@@ -386,9 +383,8 @@ static void client_do_args(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat,
case PROXY_UNMARSHAL:
if (pParam->param_attributes.IsOut)
{
if (pParam->param_attributes.IsReturn)
call_unmarshaller(pStubMsg, &pRetVal, pTypeFormat, 0);
else if (pParam->param_attributes.IsByValue)
if (pParam->param_attributes.IsReturn) pArg = pRetVal;
if (pParam->param_attributes.IsByValue)
call_unmarshaller(pStubMsg, &pArg, pTypeFormat, 0);
else
call_unmarshaller(pStubMsg, (unsigned char **)pArg, pTypeFormat, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment