Henri Verbeet : ddraw: Get rid of ICOM_INIT_INTERFACE.

Alexandre Julliard julliard at winehq.org
Wed Jan 21 06:39:35 CST 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Jan 21 09:56:13 2009 +0100

ddraw: Get rid of ICOM_INIT_INTERFACE.

---

 dlls/ddraw/ddcomimpl.h |    5 -----
 dlls/ddraw/ddraw.c     |   20 ++++++++++----------
 dlls/ddraw/device.c    |    3 +--
 dlls/ddraw/direct3d.c  |   27 +++++++++++++--------------
 dlls/ddraw/main.c      |   20 ++++++++++----------
 5 files changed, 34 insertions(+), 41 deletions(-)

diff --git a/dlls/ddraw/ddcomimpl.h b/dlls/ddraw/ddcomimpl.h
index 9293849..14d6aba 100644
--- a/dlls/ddraw/ddcomimpl.h
+++ b/dlls/ddraw/ddcomimpl.h
@@ -42,11 +42,6 @@
 #define ICOM_INTERFACE(implobj, iface) \
 	((iface *)(implobj == NULL ? NULL :&((implobj)->ICOM_VFIELD_MULTI_NAME(iface))))
 
-#define ICOM_INIT_INTERFACE(implobj, ifacename, vtblname) \
-	do { \
-	  (implobj)->ICOM_VFIELD_MULTI_NAME(ifacename) = &(vtblname); \
-	} while (0)
-
 #define COM_INTERFACE_CAST(impltype, ifnamefrom, ifnameto, ifaceptr)	\
 	ICOM_INTERFACE(ICOM_OBJECT(impltype, ifnamefrom, ifaceptr), ifnameto)
 
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 3459bf2..6df1b27 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1728,7 +1728,7 @@ IDirectDrawImpl_RecreateSurfacesCallback(IDirectDrawSurface7 *surf,
          * new surface
          */
         parImpl = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*parImpl));
-        ICOM_INIT_INTERFACE(parImpl, IParent, IParent_Vtbl);
+        parImpl->IParent_vtbl = &IParent_Vtbl;
         parImpl->ref = 1;
 
         Parent = (IUnknown *) parImpl;
@@ -1997,11 +1997,11 @@ IDirectDrawImpl_CreateNewSurface(IDirectDrawImpl *This,
         ERR("(%p) Error allocating memory for a surface\n", This);
         return DDERR_OUTOFVIDEOMEMORY;
     }
-    ICOM_INIT_INTERFACE(*ppSurf, IDirectDrawSurface7, IDirectDrawSurface7_Vtbl);
-    ICOM_INIT_INTERFACE(*ppSurf, IDirectDrawSurface3, IDirectDrawSurface3_Vtbl);
-    ICOM_INIT_INTERFACE(*ppSurf, IDirectDrawGammaControl, IDirectDrawGammaControl_Vtbl);
-    ICOM_INIT_INTERFACE(*ppSurf, IDirect3DTexture2, IDirect3DTexture2_Vtbl);
-    ICOM_INIT_INTERFACE(*ppSurf, IDirect3DTexture, IDirect3DTexture1_Vtbl);
+    (*ppSurf)->IDirectDrawSurface7_vtbl = &IDirectDrawSurface7_Vtbl;
+    (*ppSurf)->IDirectDrawSurface3_vtbl = &IDirectDrawSurface3_Vtbl;
+    (*ppSurf)->IDirectDrawGammaControl_vtbl = &IDirectDrawGammaControl_Vtbl;
+    (*ppSurf)->IDirect3DTexture2_vtbl = &IDirect3DTexture2_Vtbl;
+    (*ppSurf)->IDirect3DTexture_vtbl = &IDirect3DTexture1_Vtbl;
     (*ppSurf)->ref = 1;
     (*ppSurf)->version = 7;
     TRACE("%p->version = %d\n", (*ppSurf), (*ppSurf)->version);
@@ -2036,7 +2036,7 @@ IDirectDrawImpl_CreateNewSurface(IDirectDrawImpl *This,
             return DDERR_OUTOFMEMORY;
         }
         parImpl->ref = 1;
-        ICOM_INIT_INTERFACE(parImpl, IParent, IParent_Vtbl);
+        parImpl->IParent_vtbl = &IParent_Vtbl;
         Parent = (IUnknown *) ICOM_INTERFACE(parImpl, IParent);
         TRACE("Using IParent interface %p as parent\n", parImpl);
     }
@@ -3140,7 +3140,7 @@ DirectDrawCreateClipper(DWORD Flags,
         return E_OUTOFMEMORY;
     }
 
-    ICOM_INIT_INTERFACE(object, IDirectDrawClipper, IDirectDrawClipper_Vtbl);
+    object->IDirectDrawClipper_vtbl = &IDirectDrawClipper_Vtbl;
     object->ref = 1;
     object->wineD3DClipper = pWineDirect3DCreateClipper((IUnknown *) object);
     if(!object->wineD3DClipper)
@@ -3225,7 +3225,7 @@ IDirectDrawImpl_CreatePalette(IDirectDraw7 *iface,
         return E_OUTOFMEMORY;
     }
 
-    ICOM_INIT_INTERFACE(object, IDirectDrawPalette, IDirectDrawPalette_Vtbl);
+    object->IDirectDrawPalette_vtbl = &IDirectDrawPalette_Vtbl;
     object->ref = 1;
     object->ddraw_owner = This;
 
@@ -3608,7 +3608,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSwapChain(IWineD3DDevicePar
         return DDERR_OUTOFVIDEOMEMORY;
     }
 
-    ICOM_INIT_INTERFACE(object, IParent, IParent_Vtbl);
+    object->IParent_vtbl = &IParent_Vtbl;
     object->ref = 1;
 
     hr = IWineD3DDevice_CreateSwapChain(This->wineD3DDevice, present_parameters,
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index f4d86ac..113a99c 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -751,8 +751,7 @@ IDirect3DDeviceImpl_1_CreateExecuteBuffer(IDirect3DDevice *iface,
         return DDERR_OUTOFMEMORY;
     }
 
-    ICOM_INIT_INTERFACE(object, IDirect3DExecuteBuffer, IDirect3DExecuteBuffer_Vtbl);
-
+    object->IDirect3DExecuteBuffer_vtbl = &IDirect3DExecuteBuffer_Vtbl;
     object->ref = 1;
     object->d3ddev = This;
 
diff --git a/dlls/ddraw/direct3d.c b/dlls/ddraw/direct3d.c
index 60591d6..89300e5 100644
--- a/dlls/ddraw/direct3d.c
+++ b/dlls/ddraw/direct3d.c
@@ -442,7 +442,7 @@ IDirect3DImpl_3_CreateLight(IDirect3D3 *iface,
     if (object == NULL)
         return DDERR_OUTOFMEMORY;
 
-    ICOM_INIT_INTERFACE(object, IDirect3DLight, IDirect3DLight_Vtbl);
+    object->IDirect3DLight_vtbl = &IDirect3DLight_Vtbl;
     object->ref = 1;
     object->ddraw = This;
     object->next = NULL;
@@ -522,9 +522,9 @@ IDirect3DImpl_3_CreateMaterial(IDirect3D3 *iface,
     if (object == NULL)
         return DDERR_OUTOFMEMORY;
 
-    ICOM_INIT_INTERFACE(object, IDirect3DMaterial3, IDirect3DMaterial3_Vtbl);
-    ICOM_INIT_INTERFACE(object, IDirect3DMaterial2, IDirect3DMaterial2_Vtbl);
-    ICOM_INIT_INTERFACE(object, IDirect3DMaterial, IDirect3DMaterial_Vtbl);
+    object->IDirect3DMaterial3_vtbl = &IDirect3DMaterial3_Vtbl;
+    object->IDirect3DMaterial2_vtbl = &IDirect3DMaterial2_Vtbl;
+    object->IDirect3DMaterial_vtbl = &IDirect3DMaterial_Vtbl;
     object->ref = 1;
     object->ddraw = This;
     object->activate = material_activate;
@@ -613,7 +613,7 @@ IDirect3DImpl_3_CreateViewport(IDirect3D3 *iface,
     if (object == NULL)
         return DDERR_OUTOFMEMORY;
 
-    ICOM_INIT_INTERFACE(object, IDirect3DViewport3, IDirect3DViewport3_Vtbl);
+    object->IDirect3DViewport3_vtbl = &IDirect3DViewport3_Vtbl;
     object->ref = 1;
     object->ddraw = This;
     object->activate = viewport_activate;
@@ -806,14 +806,13 @@ IDirect3DImpl_7_CreateDevice(IDirect3D7 *iface,
     }
 
     if (This->cooperative_level & DDSCL_FPUPRESERVE)
-        ICOM_INIT_INTERFACE(object, IDirect3DDevice7, IDirect3DDevice7_FPUPreserve_Vtbl);
+        object->IDirect3DDevice7_vtbl = &IDirect3DDevice7_FPUPreserve_Vtbl;
     else
-        ICOM_INIT_INTERFACE(object, IDirect3DDevice7, IDirect3DDevice7_FPUSetup_Vtbl);
-
-    ICOM_INIT_INTERFACE(object, IDirect3DDevice3, IDirect3DDevice3_Vtbl);
-    ICOM_INIT_INTERFACE(object, IDirect3DDevice2, IDirect3DDevice2_Vtbl);
-    ICOM_INIT_INTERFACE(object, IDirect3DDevice, IDirect3DDevice1_Vtbl);
+        object->IDirect3DDevice7_vtbl = &IDirect3DDevice7_FPUSetup_Vtbl;
 
+    object->IDirect3DDevice3_vtbl = &IDirect3DDevice3_Vtbl;
+    object->IDirect3DDevice2_vtbl = &IDirect3DDevice2_Vtbl;
+    object->IDirect3DDevice_vtbl = &IDirect3DDevice1_Vtbl;
     object->ref = 1;
     object->ddraw = This;
     object->viewport_list = NULL;
@@ -838,7 +837,7 @@ IDirect3DImpl_7_CreateDevice(IDirect3D7 *iface,
         LeaveCriticalSection(&ddraw_cs);
         return DDERR_OUTOFMEMORY;
     }
-    ICOM_INIT_INTERFACE(IndexBufferParent, IParent, IParent_Vtbl);
+    IndexBufferParent->IParent_vtbl = &IParent_Vtbl;
     IndexBufferParent->ref = 1;
 
     /* Create an Index Buffer. WineD3D needs one for Drawing indexed primitives
@@ -1043,8 +1042,8 @@ IDirect3DImpl_7_CreateVertexBuffer(IDirect3D7 *iface,
     }
 
     object->ref = 1;
-    ICOM_INIT_INTERFACE(object, IDirect3DVertexBuffer7, IDirect3DVertexBuffer7_Vtbl);
-    ICOM_INIT_INTERFACE(object, IDirect3DVertexBuffer, IDirect3DVertexBuffer1_Vtbl);
+    object->IDirect3DVertexBuffer7_vtbl = &IDirect3DVertexBuffer7_Vtbl;
+    object->IDirect3DVertexBuffer_vtbl = &IDirect3DVertexBuffer1_Vtbl;
 
     object->Caps = Desc->dwCaps;
     object->ddraw = This;
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index 67b38e2..10b5969 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -171,15 +171,15 @@ DDRAW_Create(const GUID *guid,
      * IDirectDraw and IDirect3D are the same object,
      * QueryInterface is used to get other interfaces.
      */
-    ICOM_INIT_INTERFACE(This, IDirectDraw,  IDirectDraw1_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirectDraw2, IDirectDraw2_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirectDraw3, IDirectDraw3_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirectDraw4, IDirectDraw4_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirectDraw7, IDirectDraw7_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirect3D,  IDirect3D1_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirect3D2, IDirect3D2_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirect3D3, IDirect3D3_Vtbl);
-    ICOM_INIT_INTERFACE(This, IDirect3D7, IDirect3D7_Vtbl);
+    This->IDirectDraw_vtbl = &IDirectDraw1_Vtbl;
+    This->IDirectDraw2_vtbl = &IDirectDraw2_Vtbl;
+    This->IDirectDraw3_vtbl = &IDirectDraw3_Vtbl;
+    This->IDirectDraw4_vtbl = &IDirectDraw4_Vtbl;
+    This->IDirectDraw7_vtbl = &IDirectDraw7_Vtbl;
+    This->IDirect3D_vtbl = &IDirect3D1_Vtbl;
+    This->IDirect3D2_vtbl = &IDirect3D2_Vtbl;
+    This->IDirect3D3_vtbl = &IDirect3D3_Vtbl;
+    This->IDirect3D7_vtbl = &IDirect3D7_Vtbl;
     This->device_parent_vtbl = &ddraw_wined3d_device_parent_vtbl;
 
     /* See comments in IDirectDrawImpl_CreateNewSurface for a description
@@ -700,7 +700,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
     factory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*factory));
     if (factory == NULL) return E_OUTOFMEMORY;
 
-    ICOM_INIT_INTERFACE(factory, IClassFactory, IClassFactory_Vtbl);
+    factory->IClassFactory_vtbl = &IClassFactory_Vtbl;
     factory->ref = 1;
 
     factory->pfnCreateInstance = object_creation[i].pfnCreateInstance;




More information about the wine-cvs mailing list