This is to prevent things from going wrong in weird ways if OSS_CloseDevice is called more than OSS_OpenDevice.
Changelog:
Francois Gouget <fgouget@codeweavers.com>
* dlls/winmm/wineoss/audio.c
Warn if open_count is already 0 when OSS_CloseDevice is called.
Don't decrement it in that case.
--
Francois Gouget
fgouget@codeweavers.com
Index: dlls/winmm/wineoss/audio.c =================================================================== RCS file: /home/wine/wine/dlls/winmm/wineoss/audio.c,v retrieving revision 1.71 diff -u -r1.71 audio.c --- dlls/winmm/wineoss/audio.c 11 Jan 2003 22:47:51 -0000 1.71 +++ dlls/winmm/wineoss/audio.c 14 Jan 2003 19:16:32 -0000 @@ -374,7 +449,12 @@ */ static void OSS_CloseDevice(OSS_DEVICE* ossdev) { - if (--ossdev->open_count == 0) + if (ossdev->open_count>0) { + ossdev->open_count--; + } else { + WARN("OSS_CloseDevice called too many times\n"); + } + if (ossdev->open_count == 0) { /* reset the device before we close it in case it is in a bad state */ ioctl(ossdev->fd, SNDCTL_DSP_RESET, 0);