Module: wine Branch: master Commit: 90239052ab5dd011d0bd1f747cf5a7b6312a57b1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=90239052ab5dd011d0bd1f747c...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Apr 30 16:46:40 2015 +0200
d3drm: Release the child object after we're done with it in load_data() (Valgrind).
---
dlls/d3drm/d3drm.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/dlls/d3drm/d3drm.c b/dlls/d3drm/d3drm.c index 725093f..7b74cfb 100644 --- a/dlls/d3drm/d3drm.c +++ b/dlls/d3drm/d3drm.c @@ -1173,32 +1173,29 @@ static HRESULT load_data(IDirect3DRM3 *iface, IDirectXFileData *data_object, IID IDirectXFileDataReference *reference; IDirectXFileBinary *binary;
- hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileBinary, (void **)&binary); - if (SUCCEEDED(hr)) + if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileBinary, (void **)&binary))) { FIXME("Binary Object not supported yet\n"); IDirectXFileBinary_Release(binary); - continue; } - - hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileData, (void **)&data); - if (SUCCEEDED(hr)) + else if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileData, (void **)&data))) { TRACE("Found Data Object\n"); hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame); IDirectXFileData_Release(data); - continue; } - hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileDataReference, (void **)&reference); - if (SUCCEEDED(hr)) + else if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileDataReference, (void **)&reference))) { TRACE("Found Data Object Reference\n"); IDirectXFileDataReference_Resolve(reference, &data); hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame); IDirectXFileData_Release(data); IDirectXFileDataReference_Release(reference); - continue; } + IDirectXFileObject_Release(child); }
if (hr != DXFILEERR_NOMOREOBJECTS)