Module: wine Branch: master Commit: 5d24cb456565e4a00429248cf5f70453687b8f16 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5d24cb456565e4a00429248cf5...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Fri Oct 10 12:27:45 2008 +0900
winmm: The buffer provided by an application is valid only in the mmioOpen(FOURCC_MEM) case.
---
dlls/winmm/mmio.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 42f1d32..4bad745 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -570,11 +570,8 @@ static MMRESULT MMIO_SetBuffer(WINE_MMIO* wm, void* pchBuffer, LONG cchBuffer, wm->info.dwFlags &= ~MMIO_ALLOCBUF; }
- wm->bBufferLoaded = FALSE; - if (pchBuffer) { wm->info.pchBuffer = pchBuffer; - wm->bBufferLoaded = TRUE; } else if (cchBuffer) { if (!(wm->info.pchBuffer = HeapAlloc(GetProcessHeap(), 0, cchBuffer))) return MMIOERR_OUTOFMEMORY; @@ -588,6 +585,7 @@ static MMRESULT MMIO_SetBuffer(WINE_MMIO* wm, void* pchBuffer, LONG cchBuffer, wm->info.pchEndRead = wm->info.pchBuffer; wm->info.pchEndWrite = wm->info.pchBuffer + cchBuffer; wm->info.lBufOffset = wm->info.lDiskOffset; + wm->bBufferLoaded = FALSE;
return MMSYSERR_NOERROR; } @@ -669,6 +667,8 @@ HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags, refmminfo->wErrorRet = MMIO_SetBuffer(wm, refmminfo->pchBuffer, refmminfo->cchBuffer, 0); if (refmminfo->wErrorRet != MMSYSERR_NOERROR) goto error1; + if (wm->info.fccIOProc == FOURCC_MEM) + wm->bBufferLoaded = TRUE; }
/* see mmioDosIOProc for that one */