Piotr Caban : winmm: Write user data after headers in mmioAdvance so IDiskOffset is updated correctly.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Feb 23 09:04:43 CST 2015


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Feb 20 15:41:03 2015 +0100

winmm: Write user data after headers in mmioAdvance so IDiskOffset is updated correctly.

---

 dlls/winmm/mmio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index f2a04cf..16532bf 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -1023,6 +1023,8 @@ MMRESULT WINAPI mmioAdvance(HMMIO hmmio, MMIOINFO* lpmmioinfo, UINT uFlags)
     if (uFlags != MMIO_READ && uFlags != MMIO_WRITE)
 	return MMSYSERR_INVALPARAM;
 
+    if (MMIO_Flush(wm, 0) != MMSYSERR_NOERROR)
+	return MMIOERR_CANNOTWRITE;
     if (uFlags == MMIO_WRITE && (lpmmioinfo->dwFlags & MMIO_DIRTY))
     {
         send_message(wm->ioProc, &wm->info, MMIOM_SEEK, lpmmioinfo->lBufOffset, SEEK_SET, FALSE);
@@ -1030,8 +1032,6 @@ MMRESULT WINAPI mmioAdvance(HMMIO hmmio, MMIOINFO* lpmmioinfo, UINT uFlags)
                      lpmmioinfo->pchNext - lpmmioinfo->pchBuffer, FALSE);
         lpmmioinfo->dwFlags &= ~MMIO_DIRTY;
     }
-    if (MMIO_Flush(wm, 0) != MMSYSERR_NOERROR)
-	return MMIOERR_CANNOTWRITE;
 
     if (lpmmioinfo && lpmmioinfo->fccIOProc == FOURCC_DOS) {
 	wm->dwFileSize = max(wm->dwFileSize, lpmmioinfo->lBufOffset + 




More information about the wine-cvs mailing list