[PATCH 1/6] d3drm: Introduce d3drm_texture_destroy helper (v2).

Aaryaman Vasishta jem456.vasishta at gmail.com
Wed May 11 09:43:37 CDT 2016


v2: Perform object cleanup within d3drm_texture_destroy.

Signed-off-by: Aaryaman Vasishta <jem456.vasishta at gmail.com>
---
 dlls/d3drm/d3drm_private.h |  2 ++
 dlls/d3drm/texture.c       | 11 +++++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
index 2eb8e4d..f7a59da 100644
--- a/dlls/d3drm/d3drm_private.h
+++ b/dlls/d3drm/d3drm_private.h
@@ -63,6 +63,8 @@ HRESULT Direct3DRMMaterial_create(IDirect3DRMMaterial2** ret_iface) DECLSPEC_HID
 HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *data,
                        D3DRMLOADTEXTURECALLBACK load_texture_proc, void *arg) DECLSPEC_HIDDEN;
 
+void d3drm_texture_destroy(struct d3drm_texture *texture) DECLSPEC_HIDDEN;
+
 void d3drm_device_destroy(struct d3drm_device *device) DECLSPEC_HIDDEN;
 
 HRESULT d3drm_device_create_surfaces_from_clipper(struct d3drm_device *object, IDirectDraw *ddraw, IDirectDrawClipper *clipper, int width, int height,
diff --git a/dlls/d3drm/texture.c b/dlls/d3drm/texture.c
index 886bb0b..98c6bdb 100644
--- a/dlls/d3drm/texture.c
+++ b/dlls/d3drm/texture.c
@@ -44,6 +44,12 @@ static inline struct d3drm_texture *impl_from_IDirect3DRMTexture3(IDirect3DRMTex
     return CONTAINING_RECORD(iface, struct d3drm_texture, IDirect3DRMTexture3_iface);
 }
 
+void d3drm_texture_destroy(struct d3drm_texture *texture)
+{
+    d3drm_object_cleanup((IDirect3DRMObject*)&texture->IDirect3DRMTexture3_iface, &texture->obj);
+    HeapFree(GetProcessHeap(), 0, texture);
+}
+
 static HRESULT WINAPI d3drm_texture1_QueryInterface(IDirect3DRMTexture *iface, REFIID riid, void **out)
 {
     struct d3drm_texture *texture = impl_from_IDirect3DRMTexture(iface);
@@ -722,10 +728,7 @@ static ULONG WINAPI d3drm_texture3_Release(IDirect3DRMTexture3 *iface)
     TRACE("%p decreasing refcount to %u.\n", iface, refcount);
 
     if (!refcount)
-    {
-        d3drm_object_cleanup((IDirect3DRMObject*)iface, &texture->obj);
-        HeapFree(GetProcessHeap(), 0, texture);
-    }
+        d3drm_texture_destroy(texture);
 
     return refcount;
 }
-- 
2.3.2 (Apple Git-55)




More information about the wine-patches mailing list