Christian Costa : d3drm: Fix child leak.
Alexandre Julliard
julliard at winehq.org
Mon Oct 22 13:42:45 CDT 2012
Module: wine
Branch: master
Commit: 5e1d854ee50a9ad885ebd9a15f7728afa2cb0447
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e1d854ee50a9ad885ebd9a15f7728afa2cb0447
Author: Christian Costa <titan.costa at gmail.com>
Date: Sun Oct 21 14:51:25 2012 +0200
d3drm: Fix child leak.
---
dlls/d3drm/meshbuilder.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 79b5d74..180a8a9 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -1260,6 +1260,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3* iface, LPDIRECTXFILEDATA pData)
if (FAILED(hr))
{
hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileDataReference, (void **)&reference);
+ IDirectXFileObject_Release(child);
if (FAILED(hr))
goto end;
@@ -1268,6 +1269,10 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3* iface, LPDIRECTXFILEDATA pData)
if (FAILED(hr))
goto end;
}
+ else
+ {
+ IDirectXFileObject_Release(child);
+ }
hr = Direct3DRMMaterial_create(&material);
if (FAILED(hr))
@@ -1357,9 +1362,14 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3* iface, LPDIRECTXFILEDATA pData)
i++;
}
if (hr == S_OK)
+ {
+ IDirectXFileObject_Release(child);
WARN("Found more sub-objects than expected\n");
+ }
else if (hr != DXFILEERR_NOMOREOBJECTS)
+ {
goto end;
+ }
hr = S_OK;
}
else
More information about the wine-cvs
mailing list