Jörg Höhle : wineoss: Do not access WAVEHDR past DriverCallback.
Module: wine Branch: master Commit: 4cff4c82a167308cb62a1f98fd45ad088c993dac URL: http://source.winehq.org/git/wine.git/?a=commit;h=4cff4c82a167308cb62a1f98fd... Author: Jörg Höhle <hoehle(a)users.sourceforge.net> Date: Sat Feb 20 16:34:59 2010 +0100 wineoss: Do not access WAVEHDR past DriverCallback. --- dlls/wineoss.drv/audio.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/wineoss.drv/audio.c b/dlls/wineoss.drv/audio.c index cd89cb7..ba42358 100644 --- a/dlls/wineoss.drv/audio.c +++ b/dlls/wineoss.drv/audio.c @@ -2806,15 +2806,15 @@ static DWORD CALLBACK widRecorder(LPVOID pmt) widRecorder_ReadHeaders(wwi); /* return all buffers to the app */ - for (lpWaveHdr = wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) { + while (wwi->lpQueuePtr) { + lpWaveHdr = wwi->lpQueuePtr; TRACE("reset %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); + wwi->lpQueuePtr = lpWaveHdr->lpNext; lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; lpWaveHdr->dwFlags |= WHDR_DONE; - wwi->lpQueuePtr = lpWaveHdr->lpNext; widNotifyClient(wwi, WIM_DATA, (DWORD_PTR)lpWaveHdr, 0); } - wwi->lpQueuePtr = NULL; SetEvent(ev); break; case WINE_WM_UPDATE:
participants (1)
-
Alexandre Julliard