Akihiro Sagawa : winmm: Avoid direct seeking for memory files.
Module: wine Branch: master Commit: f7ddc1eb957c96bb25bba0887e262ed15f0b8747 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f7ddc1eb957c96bb25bba0887e... Author: Akihiro Sagawa <sagawa.aki(a)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);
participants (1)
-
Alexandre Julliard