Henri Verbeet : ddraw: Add a separate function for parent initialization.

Alexandre Julliard julliard at winehq.org
Thu Aug 19 11:44:02 CDT 2010


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Aug 18 19:26:24 2010 +0200

ddraw: Add a separate function for parent initialization.

---

 dlls/ddraw/ddraw.c         |    7 +++----
 dlls/ddraw/ddraw_private.h |    2 +-
 dlls/ddraw/parent.c        |    8 +++++++-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 7d97a91..df79f0e 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -4701,8 +4701,8 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid,
         LeaveCriticalSection(&ddraw_cs);
         return DDERR_OUTOFMEMORY;
     }
-    index_buffer_parent->lpVtbl = &IParent_Vtbl;
-    index_buffer_parent->ref = 1;
+
+    ddraw_parent_init(index_buffer_parent);
 
     /* Create an Index Buffer. WineD3D needs one for Drawing indexed primitives
      * Create a (hopefully) long enough buffer, and copy the indices into it
@@ -5928,8 +5928,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSwapChain(IWineD3DDevicePar
         return DDERR_OUTOFVIDEOMEMORY;
     }
 
-    object->lpVtbl = &IParent_Vtbl;
-    object->ref = 1;
+    ddraw_parent_init(object);
 
     hr = IWineD3DDevice_CreateSwapChain(This->wineD3DDevice, present_parameters,
             swapchain, (IUnknown *)object, This->ImplType);
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 81d2fd3..40f3bfd 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -315,7 +315,7 @@ struct IParentImpl
 
 };
 
-extern const IParentVtbl IParent_Vtbl DECLSPEC_HIDDEN;
+void ddraw_parent_init(IParentImpl *parent) DECLSPEC_HIDDEN;
 
 /*****************************************************************************
  * IDirect3DDevice implementation
diff --git a/dlls/ddraw/parent.c b/dlls/ddraw/parent.c
index 2d8f519..705d587 100644
--- a/dlls/ddraw/parent.c
+++ b/dlls/ddraw/parent.c
@@ -121,9 +121,15 @@ static ULONG WINAPI IParentImpl_Release(IParent *iface)
 /*****************************************************************************
  * The VTable
  *****************************************************************************/
-const IParentVtbl IParent_Vtbl =
+static const struct IParentVtbl ddraw_parent_vtbl =
 {
      IParentImpl_QueryInterface,
      IParentImpl_AddRef,
      IParentImpl_Release,
 };
+
+void ddraw_parent_init(IParentImpl *parent)
+{
+    parent->lpVtbl = &ddraw_parent_vtbl;
+    parent->ref = 1;
+}




More information about the wine-cvs mailing list