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

Alexandre Julliard julliard at winehq.org
Mon Jun 13 11:49:17 CDT 2011


Module: wine
Branch: master
Commit: b0f858607893c46312277abda3d15c8f4ca7a59c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b0f858607893c46312277abda3d15c8f4ca7a59c

Author: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list