Francois Gouget : rpcrt4: Fix compilation on systems that don' t support nameless unions.

Alexandre Julliard julliard at winehq.org
Mon Aug 31 10:47:52 CDT 2009


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

Author: Francois Gouget <fgouget at free.fr>
Date:   Mon Aug 31 11:53:00 2009 +0200

rpcrt4: Fix compilation on systems that don't support nameless unions.

---

 dlls/rpcrt4/ndr_marshall.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c
index 9846d9e..d1b57fd 100644
--- a/dlls/rpcrt4/ndr_marshall.c
+++ b/dlls/rpcrt4/ndr_marshall.c
@@ -32,6 +32,7 @@
 #include <string.h>
 #include <limits.h>
 
+#define NONAMELESSUNION
 #include "windef.h"
 #include "winbase.h"
 #include "winerror.h"
@@ -4379,15 +4380,15 @@ RPC_STATUS RPC_ENTRY NdrGetUserMarshalInfo(ULONG *flags, ULONG level, NDR_USER_M
     if (level != 1)
         return RPC_S_INVALID_ARG;
 
-    memset(&umi->Level1, 0, sizeof(umi->Level1));
+    memset(&umi->u1.Level1, 0, sizeof(umi->u1.Level1));
     umi->InformationLevel = level;
 
     if (umcb->Signature != USER_MARSHAL_CB_SIGNATURE)
         return RPC_S_INVALID_ARG;
 
-    umi->Level1.pfnAllocate = umcb->pStubMsg->pfnAllocate;
-    umi->Level1.pfnFree = umcb->pStubMsg->pfnFree;
-    umi->Level1.pRpcChannelBuffer = umcb->pStubMsg->pRpcChannelBuffer;
+    umi->u1.Level1.pfnAllocate = umcb->pStubMsg->pfnAllocate;
+    umi->u1.Level1.pfnFree = umcb->pStubMsg->pfnFree;
+    umi->u1.Level1.pRpcChannelBuffer = umcb->pStubMsg->pRpcChannelBuffer;
 
     switch (umcb->CBType)
     {
@@ -4403,8 +4404,8 @@ RPC_STATUS RPC_ENTRY NdrGetUserMarshalInfo(ULONG *flags, ULONG level, NDR_USER_M
             umcb->pStubMsg->Buffer > buffer_end)
             return ERROR_INVALID_USER_BUFFER;
 
-        umi->Level1.Buffer = umcb->pStubMsg->Buffer;
-        umi->Level1.BufferSize = buffer_end - umcb->pStubMsg->Buffer;
+        umi->u1.Level1.Buffer = umcb->pStubMsg->Buffer;
+        umi->u1.Level1.BufferSize = buffer_end - umcb->pStubMsg->Buffer;
         break;
     }
     case USER_MARSHAL_CB_BUFFER_SIZE:




More information about the wine-cvs mailing list