Module: wine Branch: master Commit: a330b011435e18372f434635c80a1eceea8ffd9d URL: http://source.winehq.org/git/wine.git/?a=commit;h=a330b011435e18372f434635c8...
Author: Maarten Lankhorst wine@mblankhorst.nl Date: Mon May 16 09:55:26 2016 -0500
dsound: Fixup DSOUND_WaveQueue checks.
Signed-off-by: Andrew Eikum aeikum@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 dec8ffd..4ca0af1 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; }