Module: wine Branch: master Commit: b0f858607893c46312277abda3d15c8f4ca7a59c URL: http://source.winehq.org/git/wine.git/?a=commit;h=b0f858607893c46312277abda3...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Jun 10 15:11:40 2011 +0200
rpcrt4: Fix handling of complex types of return values on the client side.
---
dlls/rpcrt4/ndr_stubless.c | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/rpcrt4/ndr_stubless.c b/dlls/rpcrt4/ndr_stubless.c index 436dccf..f508c9e 100644 --- a/dlls/rpcrt4/ndr_stubless.c +++ b/dlls/rpcrt4/ndr_stubless.c @@ -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);