Akihiro Sagawa : winmm: Avoid direct seeking for memory files.
Alexandre Julliard
julliard at winehq.org
Mon Jun 16 12:37:50 CDT 2014
Module: wine
Branch: master
Commit: f7ddc1eb957c96bb25bba0887e262ed15f0b8747
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f7ddc1eb957c96bb25bba0887e262ed15f0b8747
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Mon Jun 16 22:48:24 2014 +0900
winmm: Avoid direct seeking for memory files.
---
dlls/winmm/mmio.c | 2 +-
dlls/winmm/tests/mmio.c | 15 +++------------
2 files changed, 4 insertions(+), 13 deletions(-)
diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index 8521b87..c0e9498 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -871,7 +871,7 @@ LONG WINAPI mmioSeek(HMMIO hmmio, LONG lOffset, INT iOrigin)
return MMSYSERR_INVALHANDLE;
/* not buffered, direct seek on file */
- if (!wm->info.pchBuffer)
+ if (!wm->info.pchBuffer && wm->info.fccIOProc != FOURCC_MEM)
return send_message(wm->ioProc, &wm->info, MMIOM_SEEK, lOffset, iOrigin, FALSE);
switch (iOrigin) {
diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c
index 71efc5d..e92700f 100644
--- a/dlls/winmm/tests/mmio.c
+++ b/dlls/winmm/tests/mmio.c
@@ -315,10 +315,7 @@ static void test_mmioOpen(char *fname)
ok(mmio.lDiskOffset == 0, "expected 0, got %d\n", mmio.lDiskOffset);
ret = mmioSeek(hmmio, 0, SEEK_CUR);
- if (fname)
- ok(ret == 0, "expected 0, got %d\n", ret);
- else
- todo_wine ok(ret == 0, "expected 0, got %d\n", ret);
+ ok(ret == 0, "expected 0, got %d\n", ret);
mmioClose(hmmio, 0);
@@ -531,10 +528,7 @@ static void test_mmioSetBuffer(char *fname)
ok(mmio.lDiskOffset == 0, "expected 0, got %d\n", mmio.lDiskOffset);
ret = mmioSeek(hmmio, 0, SEEK_CUR);
- if (fname)
- ok(ret == 0, "expected 0, got %d\n", ret);
- else
- todo_wine ok(ret == 0, "expected 0, got %d\n", ret);
+ ok(ret == 0, "expected 0, got %d\n", ret);
ret = mmioSetBuffer(hmmio, NULL, 0, MMIO_ALLOCBUF);
ok(ret == MMSYSERR_NOERROR, "mmioSetBuffer error %u\n", ret);
@@ -554,10 +548,7 @@ static void test_mmioSetBuffer(char *fname)
ok(mmio.lDiskOffset == 0, "expected 0, got %d\n", mmio.lDiskOffset);
ret = mmioSeek(hmmio, 0, SEEK_CUR);
- if (fname)
- ok(ret == 0, "expected 0, got %d\n", ret);
- else
- todo_wine ok(ret == 0, "expected 0, got %d\n", ret);
+ ok(ret == 0, "expected 0, got %d\n", ret);
ret = mmioSetBuffer(hmmio, buf, 0, MMIO_ALLOCBUF);
ok(ret == MMSYSERR_NOERROR, "mmioSetBuffer error %u\n", ret);
More information about the wine-cvs
mailing list