Module: wine Branch: master Commit: f7ddc1eb957c96bb25bba0887e262ed15f0b8747 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f7ddc1eb957c96bb25bba0887e...
Author: Akihiro Sagawa sagawa.aki@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);