[PATCH 2/6] dplayx: Remove the duplicated IDirectPlayLobby{2,3}Impl structs. b

Michael Stefaniuc mstefani at redhat.de
Tue Apr 9 15:32:53 CDT 2013


---
 dlls/dplayx/dplobby.c | 64 ++++++++++++---------------------------------------
 1 file changed, 15 insertions(+), 49 deletions(-)

diff --git a/dlls/dplayx/dplobby.c b/dlls/dplayx/dplobby.c
index 904fbcd..74b5c08 100644
--- a/dlls/dplayx/dplobby.c
+++ b/dlls/dplayx/dplobby.c
@@ -40,10 +40,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(dplay);
  */
 typedef struct IDirectPlayLobbyImpl  IDirectPlayLobbyAImpl;
 typedef struct IDirectPlayLobbyImpl  IDirectPlayLobbyWImpl;
-typedef struct IDirectPlayLobby2Impl IDirectPlayLobby2AImpl;
-typedef struct IDirectPlayLobby2Impl IDirectPlayLobby2WImpl;
-typedef struct IDirectPlayLobby3Impl IDirectPlayLobby3AImpl;
-typedef struct IDirectPlayLobby3Impl IDirectPlayLobby3WImpl;
+typedef struct IDirectPlayLobbyImpl  IDirectPlayLobby2AImpl;
+typedef struct IDirectPlayLobbyImpl  IDirectPlayLobby2WImpl;
+typedef struct IDirectPlayLobbyImpl  IDirectPlayLobby3AImpl;
+typedef struct IDirectPlayLobbyImpl  IDirectPlayLobby3WImpl;
 
 /* Forward declarations for this module helper methods */
 HRESULT DPL_CreateCompoundAddress ( LPCDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount,
@@ -85,28 +85,13 @@ typedef struct tagDirectPlayLobbyData
   DPQ_HEAD( DPLMSG ) msgs;  /* List of messages received */
 } DirectPlayLobbyData;
 
-#define DPL_IMPL_FIELDS \
- LONG ulInterfaceRef; \
- DirectPlayLobbyIUnknownData*  unk; \
- DirectPlayLobbyData*          dpl;
-
-struct IDirectPlayLobbyImpl
-{
-    const IDirectPlayLobbyVtbl *lpVtbl;
-    DPL_IMPL_FIELDS
-};
-
-struct IDirectPlayLobby2Impl
+typedef struct IDirectPlayLobbyImpl
 {
-    const IDirectPlayLobby2Vtbl *lpVtbl;
-    DPL_IMPL_FIELDS
-};
-
-struct IDirectPlayLobby3Impl
-{
-    const IDirectPlayLobby3Vtbl *lpVtbl;
-    DPL_IMPL_FIELDS
-};
+    const void *lpVtbl;
+    LONG ulInterfaceRef;
+    DirectPlayLobbyIUnknownData*  unk;
+    DirectPlayLobbyData*          dpl;
+} IDirectPlayLobbyImpl;
 
 /* Forward declarations of virtual tables */
 static const IDirectPlayLobbyVtbl  directPlayLobbyWVT;
@@ -203,46 +188,26 @@ static BOOL DPL_DestroyLobby1( LPVOID lpDPL )
 HRESULT DPL_CreateInterface
          ( REFIID riid, LPVOID* ppvObj )
 {
-  TRACE( " for %s\n", debugstr_guid( riid ) );
+  IDirectPlayLobbyImpl *This;
 
-  *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
-                       sizeof( IDirectPlayLobbyWImpl ) );
+  TRACE( " for %s\n", debugstr_guid( riid ) );
 
-  if( *ppvObj == NULL )
-  {
+  This = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *This ) );
+  if ( !This )
     return DPERR_OUTOFMEMORY;
-  }
 
   if( IsEqualGUID( &IID_IDirectPlayLobby, riid ) )
-  {
-    IDirectPlayLobbyWImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobbyWVT;
-  }
   else if( IsEqualGUID( &IID_IDirectPlayLobbyA, riid ) )
-  {
-    IDirectPlayLobbyAImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobbyAVT;
-  }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2, riid ) )
-  {
-    IDirectPlayLobby2WImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobby2WVT;
-  }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2A, riid ) )
-  {
-    IDirectPlayLobby2AImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobby2AVT;
-  }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3, riid ) )
-  {
-    IDirectPlayLobby3WImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobby3WVT;
-  }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3A, riid ) )
-  {
-    IDirectPlayLobby3AImpl *This = *ppvObj;
     This->lpVtbl = &directPlayLobby3AVT;
-  }
   else
   {
     /* Unsupported interface */
@@ -253,6 +218,7 @@ HRESULT DPL_CreateInterface
   }
 
   /* Initialize it */
+  *ppvObj = This;
   if ( DPL_CreateIUnknown( *ppvObj ) &&
        DPL_CreateLobby1( *ppvObj )
      )
-- 
1.7.11.7



More information about the wine-patches mailing list