[ros-diffs] [tkreuzer] 50484: [CMAKE] Fix return type of NdrClientCall*

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Jan 25 11:55:45 UTC 2011


Author: tkreuzer
Date: Tue Jan 25 11:55:45 2011
New Revision: 50484

URL: http://svn.reactos.org/svn/reactos?rev=50484&view=rev
Log:
[CMAKE]
Fix return type of NdrClientCall*

Modified:
    branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c
    branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c
    branches/cmake-bringup/include/psdk/rpcndr.h

Modified: branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c?rev=50484&r1=50483&r2=50484&view=diff
==============================================================================
--- branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c [iso-8859-1] (original)
+++ branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c [iso-8859-1] Tue Jan 25 11:55:45 2011
@@ -17,7 +17,7 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- * 
+ *
  * TODO: Handle non-i386 architectures
  */
 
@@ -96,7 +96,7 @@
     args[0] = *(const WORD*)(fs + 8);
     TRACE("(%p)->(%d)([%d bytes]) ret=%08x\n", iface, index, args[0], args[1]);
 
-    return NdrClientCall2(stubless->pStubDesc, fs, args + 2);
+    return NdrClientCall2(stubless->pStubDesc, fs, args + 2).Simple;
 }
 
 #define BLOCK_SIZE 1024

Modified: branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c?rev=50484&r1=50483&r2=50484&view=diff
==============================================================================
--- branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] (original)
+++ branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] Tue Jan 25 11:55:45 2011
@@ -510,7 +510,7 @@
         }
         else
         {
-            const NDR_PARAM_OI_OTHER *pParamOther = 
+            const NDR_PARAM_OI_OTHER *pParamOther =
                 (const NDR_PARAM_OI_OTHER *)&pFormat[current_offset];
 
             const unsigned char *pTypeFormat =
@@ -548,10 +548,7 @@
     }
 }
 
-/* the return type should be CLIENT_CALL_RETURN, but this is incompatible
- * with the way gcc returns structures. "void *" should be the largest type
- * that MIDL should allow you to return anyway */
-LONG_PTR WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...)
+CLIENT_CALL_RETURN WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...)
 {
     /* pointer to start of stack where arguments start */
     RPC_MESSAGE rpcMsg;
@@ -574,7 +571,7 @@
     /* -Oif or -Oicf generated format */
     BOOL bV2Format = FALSE;
     /* the value to return to the client from the remote procedure */
-    LONG_PTR RetVal = 0;
+    CLIENT_CALL_RETURN RetVal = {0};
     /* the pointer to the object when in OLE mode */
     void * This = NULL;
     PFORMAT_STRING pHandleFormat;
@@ -630,7 +627,7 @@
     if (!(pProcHeader->Oi_flags & RPC_FC_PROC_OIF_OBJECT))
     {
         pFormat = client_get_handle(&stubMsg, pProcHeader, pHandleFormat, &hBinding);
-        if (!pFormat) return 0;
+        if (!pFormat) return RetVal;
     }
 
     bV2Format = (pStubDesc->Version >= 0x20000);
@@ -729,7 +726,7 @@
         }
         __EXCEPT_ALL
         {
-            RetVal = NdrProxyErrorHandler(GetExceptionCode());
+            RetVal.Simple = NdrProxyErrorHandler(GetExceptionCode());
         }
         __ENDTRY
     }
@@ -830,7 +827,7 @@
         client_free_handle(&stubMsg, pProcHeader, pHandleFormat, hBinding);
     }
 
-    TRACE("RetVal = 0x%lx\n", RetVal);
+    TRACE("RetVal = 0x%p\n", RetVal.Pointer);
 
     return RetVal;
 }
@@ -1465,7 +1462,7 @@
 
                 pRpcMsg->BufferLength = stubMsg.BufferLength;
                 /* allocate buffer for [out] and [ret] params */
-                Status = I_RpcGetBuffer(pRpcMsg); 
+                Status = I_RpcGetBuffer(pRpcMsg);
                 if (Status)
                     RpcRaiseException(Status);
                 stubMsg.Buffer = pRpcMsg->Buffer;

Modified: branches/cmake-bringup/include/psdk/rpcndr.h
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/psdk/rpcndr.h?rev=50484&r1=50483&r2=50484&view=diff
==============================================================================
--- branches/cmake-bringup/include/psdk/rpcndr.h [iso-8859-1] (original)
+++ branches/cmake-bringup/include/psdk/rpcndr.h [iso-8859-1] Tue Jan 25 11:55:45 2011
@@ -650,15 +650,13 @@
 RPCRTAPI unsigned char* RPC_ENTRY
   NdrUserMarshalSimpleTypeConvert( ULONG *pFlags, unsigned char *pBuffer, unsigned char FormatChar );
 
-/* Note: this should return a CLIENT_CALL_RETURN, but calling convention for
- * returning structures/unions is different between Windows and gcc on i386. */
-LONG_PTR RPC_VAR_ENTRY
+CLIENT_CALL_RETURN RPC_VAR_ENTRY
   NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
-LONG_PTR RPC_VAR_ENTRY
+CLIENT_CALL_RETURN RPC_VAR_ENTRY
   NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
-LONG_PTR RPC_VAR_ENTRY
+CLIENT_CALL_RETURN RPC_VAR_ENTRY
   NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
-LONG_PTR RPC_VAR_ENTRY
+CLIENT_CALL_RETURN RPC_VAR_ENTRY
   NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
 
 RPCRTAPI void RPC_ENTRY




More information about the Ros-diffs mailing list