Module: wine Branch: master Commit: 5e1d854ee50a9ad885ebd9a15f7728afa2cb0447 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e1d854ee50a9ad885ebd9a15f...
Author: Christian Costa titan.costa@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