From: Andrew Eikum Subject: [PATCH 3/4] dsound: Fixup DSOUND_WaveQueue checks Message-Id: <20160408183819.GF31257@foghorn.codeweavers.com> Date: Fri, 8 Apr 2016 13:38:19 -0500 From: Maarten Lankhorst Signed-off-by: Andrew Eikum --- dlls/dsound/mixer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c index 59ee21d..c763650 100644 --- a/dlls/dsound/mixer.c +++ b/dlls/dsound/mixer.c @@ -621,16 +621,18 @@ static void DSOUND_WaveQueue(DirectSoundDevice *device, LPBYTE pos, DWORD bytes) hr = IAudioRenderClient_GetBuffer(device->render, bytes / device->pwfx->nBlockAlign, &buffer); if(FAILED(hr)){ WARN("GetBuffer failed: %08x\n", hr); - goto done; + return; } memcpy(buffer, pos, bytes); hr = IAudioRenderClient_ReleaseBuffer(device->render, bytes / device->pwfx->nBlockAlign, 0); - if(FAILED(hr)) - WARN("ReleaseBuffer failed: %08x\n", hr); + if(FAILED(hr)) { + ERR("ReleaseBuffer failed: %08x\n", hr); + IAudioRenderClient_ReleaseBuffer(device->render, 0, 0); + return; + } -done: device->pad += bytes; } -- 2.8.0