=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: mmdevapi: Unlock buffer in case of ReleaseBuffer error.

Alexandre Julliard julliard at winehq.org
Thu Sep 22 13:39:49 CDT 2011


Module: wine
Branch: master
Commit: 83796800959794b98bb1dfd4090bbf3a04627605
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=83796800959794b98bb1dfd4090bbf3a04627605

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Mon Sep 12 07:12:10 2011 +0200

mmdevapi: Unlock buffer in case of ReleaseBuffer error.

---

 dlls/winealsa.drv/mmdevdrv.c |    3 ++-
 dlls/wineoss.drv/mmdevdrv.c  |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 15146f5..8118103 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -2097,8 +2097,9 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer(
         written = alsa_write_best_effort(This->pcm_handle, buffer,
                 written_frames, This);
         if(written < 0){
+            This->buf_state = NOT_LOCKED;
             LeaveCriticalSection(&This->lock);
-            WARN("write failed: %ld (%s)\n", written, snd_strerror(written));
+            ERR("write failed: %ld (%s)\n", written, snd_strerror(written));
             return E_FAIL;
         }
 
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
index 33438e4..b7e3bbf 100644
--- a/dlls/wineoss.drv/mmdevdrv.c
+++ b/dlls/wineoss.drv/mmdevdrv.c
@@ -1731,8 +1731,9 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer(
                 written_frames * This->fmt->nBlockAlign);
         if(w_bytes < 0){
             if(errno != EAGAIN){
+                This->buf_state = NOT_LOCKED;
                 LeaveCriticalSection(&This->lock);
-                WARN("write failed: %d (%s)\n", errno, strerror(errno));
+                ERR("write failed: %d (%s)\n", errno, strerror(errno));
                 return E_FAIL;
             }else /* OSS buffer full */
                 w_bytes = 0;




More information about the wine-cvs mailing list