From a40f65487d641a83c19b570c4473c057ca50e2c7 Mon Sep 17 00:00:00 2001
From: Aaryaman Vasishta <jem456.vasishta@gmail.com>
Date: Tue, 14 Jul 2015 14:22:26 +0530
Subject: [PATCH 2/8] d3drm: Add helper for destroying device.
Reply-To: wine-devel <wine-devel@winehq.org>

---
 dlls/d3drm/d3drm_private.h | 1 +
 dlls/d3drm/device.c        | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
index a0b48ce..3cf9c23 100644
--- a/dlls/d3drm/d3drm_private.h
+++ b/dlls/d3drm/d3drm_private.h
@@ -42,6 +42,7 @@ HRESULT Direct3DRMTexture_create(REFIID riid, IUnknown** ret_iface) DECLSPEC_HID
 HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *data,
                        D3DRMLOADTEXTURECALLBACK load_texture_proc, void *arg) DECLSPEC_HIDDEN;
 HRESULT init_device(struct d3drm_device *device, REFIID riid, IUnknown **out) DECLSPEC_HIDDEN;
+void d3drm_device_destroy(struct d3drm_device *device) DECLSPEC_HIDDEN;
 
 struct d3drm_file_header
 {
diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
index f33f466..2325d45 100644
--- a/dlls/d3drm/device.c
+++ b/dlls/d3drm/device.c
@@ -84,6 +84,11 @@ HRESULT init_device(struct d3drm_device *device, REFIID riid, IUnknown **out)
     return IDirect3DRMDevice3_QueryInterface(&device->IDirect3DRMDevice3_iface, riid, (void **)out);
 }
 
+void d3drm_device_destroy(struct d3drm_device *device)
+{
+    HeapFree(GetProcessHeap(), 0, device);
+}
+
 static inline struct d3drm_device *impl_from_IDirect3DRMWinDevice(IDirect3DRMWinDevice *iface)
 {
     return CONTAINING_RECORD(iface, struct d3drm_device, IDirect3DRMWinDevice_iface);
@@ -880,7 +885,7 @@ static ULONG WINAPI d3drm_device3_Release(IDirect3DRMDevice3 *iface)
     TRACE("%p decreasing refcount to %u.\n", iface, refcount);
 
     if (!refcount)
-        HeapFree(GetProcessHeap(), 0, device);
+        d3drm_device_destroy(device);
 
     return refcount;
 }
-- 
2.3.2 (Apple Git-55)

