From 9d2e09851b1247d4198cf538c87924d584ba7b73 Mon Sep 17 00:00:00 2001 From: Robert Reif Date: Tue, 14 Oct 2003 20:05:42 +0000 Subject: [PATCH] Free should not happen when still playing. --- dlls/winmm/winmm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c index 1017509402f..ad4cf277005 100644 --- a/dlls/winmm/winmm.c +++ b/dlls/winmm/winmm.c @@ -2357,7 +2357,8 @@ UINT WINAPI waveOutClose(HWAVEOUT hWaveOut) return MMSYSERR_INVALHANDLE; dwRet = MMDRV_Close(wmld, WODM_CLOSE); - MMDRV_Free(hWaveOut, wmld); + if (dwRet != WAVERR_STILLPLAYING) + MMDRV_Free(hWaveOut, wmld); return dwRet; } @@ -2706,7 +2707,8 @@ UINT WINAPI waveInClose(HWAVEIN hWaveIn) return MMSYSERR_INVALHANDLE; dwRet = MMDRV_Message(wmld, WIDM_CLOSE, 0L, 0L, TRUE); - MMDRV_Free(hWaveIn, wmld); + if (dwRet != WAVERR_STILLPLAYING) + MMDRV_Free(hWaveIn, wmld); return dwRet; }