[PATCH 5/7] dplayx: Merge the extra struct into IDPLobbySPImpl.

Michael Stefaniuc mstefani at redhat.de
Tue Sep 3 16:22:44 CDT 2013


---
 dlls/dplayx/lobbysp.c | 67 +++++----------------------------------------------
 1 file changed, 6 insertions(+), 61 deletions(-)

diff --git a/dlls/dplayx/lobbysp.c b/dlls/dplayx/lobbysp.c
index 506976d..6e7fdd6 100644
--- a/dlls/dplayx/lobbysp.c
+++ b/dlls/dplayx/lobbysp.c
@@ -26,28 +26,12 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(dplay);
 
-/* Prototypes */
-static BOOL DPLSP_CreateDPLobbySP( void *lpSP, IDirectPlayImpl *dp );
-static BOOL DPLSP_DestroyDPLobbySP( LPVOID lpSP );
-
-
-/* Predefine the interface */
-typedef struct IDPLobbySPImpl IDPLobbySPImpl;
-
-typedef struct tagDPLobbySPData
-{
-  IDirectPlayImpl *dplay;
-} DPLobbySPData;
-
-#define DPLSP_IMPL_FIELDS \
-   DPLobbySPData* sp;
-
-struct IDPLobbySPImpl
+typedef struct IDPLobbySPImpl
 {
   const IDPLobbySPVtbl *lpVtbl;
   LONG ref;
-  DPLSP_IMPL_FIELDS
-};
+  IDirectPlayImpl *dplay;
+} IDPLobbySPImpl;
 
 static inline IDPLobbySPImpl *impl_from_IDPLobbySP(IDPLobbySP *iface)
 {
@@ -73,6 +57,7 @@ HRESULT DPLSP_CreateInterface( REFIID riid, void **ppvObj, IDirectPlayImpl *dp )
   {
     IDPLobbySPImpl *This = *ppvObj;
     This->lpVtbl = &dpLobbySPVT;
+    This->dplay = dp;
   }
   else
   {
@@ -83,45 +68,8 @@ HRESULT DPLSP_CreateInterface( REFIID riid, void **ppvObj, IDirectPlayImpl *dp )
     return E_NOINTERFACE;
   }
 
-  /* Initialize it */
-  if( DPLSP_CreateDPLobbySP( *ppvObj, dp ) )
-  {
-    IDPLobbySP_AddRef( (LPDPLOBBYSP)*ppvObj );
-    return S_OK;
-  }
-
-  /* Initialize failed, destroy it */
-  DPLSP_DestroyDPLobbySP( *ppvObj );
-
-  HeapFree( GetProcessHeap(), 0, *ppvObj );
-  *ppvObj = NULL;
-
-  return DPERR_NOMEMORY;
-}
-
-static BOOL DPLSP_CreateDPLobbySP( void *lpSP, IDirectPlayImpl *dp )
-{
-  IDPLobbySPImpl *This = lpSP;
-
-  This->sp = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *(This->sp) ) );
-
-  if ( This->sp == NULL )
-  {
-    return FALSE;
-  }
-
-  This->sp->dplay = dp;
-
-  return TRUE;
-}
-
-static BOOL DPLSP_DestroyDPLobbySP( LPVOID lpSP )
-{
-  IDPLobbySPImpl *This = lpSP;
-
-  HeapFree( GetProcessHeap(), 0, This->sp );
-
-  return TRUE;
+  IDPLobbySP_AddRef( (LPDPLOBBYSP)*ppvObj );
+  return S_OK;
 }
 
 static HRESULT WINAPI IDPLobbySPImpl_QueryInterface( IDPLobbySP *iface, REFIID riid,
@@ -159,10 +107,7 @@ static ULONG WINAPI IDPLobbySPImpl_Release( IDPLobbySP *iface )
   TRACE( "(%p) ref=%d\n", This, ref );
 
   if( !ref )
-  {
-    DPLSP_DestroyDPLobbySP( This );
     HeapFree( GetProcessHeap(), 0, This );
-  }
 
   return ref;
 }
-- 
1.8.3.1



More information about the wine-patches mailing list