FAudioCOMConstructWithCustomAllocatorEXT initialize the reference count to 1, then QueryInterface increase the count to 2. Thus the finial release wont be called if a balanced AddRef/Release is used.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- dlls/xaudio2_7/xaudio_dll.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c index a87e0124d3..fa0361182c 100644 --- a/dlls/xaudio2_7/xaudio_dll.c +++ b/dlls/xaudio2_7/xaudio_dll.c @@ -1955,10 +1955,8 @@ static HRESULT WINAPI XAudio2CF_CreateInstance(IClassFactory *iface, IUnknown *p FAudio_RegisterForCallbacks(object->faudio, &object->FAudioEngineCallback_vtbl);
hr = IXAudio2_QueryInterface(&object->IXAudio2_iface, riid, ppobj); + IXAudio2_Release(&object->IXAudio2_iface); if(FAILED(hr)){ - object->lock.DebugInfo->Spare[0] = 0; - DeleteCriticalSection(&object->lock); - HeapFree(GetProcessHeap(), 0, object); return hr; }
Signed-off-by: Andrew Eikum aeikum@codeweavers.com
On Mon, Mar 09, 2020 at 09:22:19AM +0000, Alistair Leslie-Hughes wrote:
FAudioCOMConstructWithCustomAllocatorEXT initialize the reference count to 1, then QueryInterface increase the count to 2. Thus the finial release wont be called if a balanced AddRef/Release is used.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com
dlls/xaudio2_7/xaudio_dll.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c index a87e0124d3..fa0361182c 100644 --- a/dlls/xaudio2_7/xaudio_dll.c +++ b/dlls/xaudio2_7/xaudio_dll.c @@ -1955,10 +1955,8 @@ static HRESULT WINAPI XAudio2CF_CreateInstance(IClassFactory *iface, IUnknown *p FAudio_RegisterForCallbacks(object->faudio, &object->FAudioEngineCallback_vtbl);
hr = IXAudio2_QueryInterface(&object->IXAudio2_iface, riid, ppobj);
- IXAudio2_Release(&object->IXAudio2_iface); if(FAILED(hr)){
object->lock.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&object->lock);
}HeapFree(GetProcessHeap(), 0, object); return hr;
-- 2.25.1