Akihiro Sagawa : winmm: Fix SEEK_END handling for memory files.
Alexandre Julliard
julliard at winehq.org
Mon Jun 16 12:37:50 CDT 2014
Module: wine
Branch: master
Commit: 8d9a7247c385753559989ae68755c1402824f80c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8d9a7247c385753559989ae68755c1402824f80c
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Mon Jun 16 22:48:28 2014 +0900
winmm: Fix SEEK_END handling for memory files.
---
dlls/winmm/mmio.c | 2 +-
dlls/winmm/tests/mmio.c | 11 ++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index ec282c2..c61c99c 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -896,7 +896,7 @@ LONG WINAPI mmioSeek(HMMIO hmmio, LONG lOffset, INT iOrigin)
/* some memory mapped buffers are defined with -1 as a size */
if ((wm->info.cchBuffer > 0) &&
((offset < wm->info.lBufOffset) ||
- (offset >= wm->info.lBufOffset + wm->info.cchBuffer) ||
+ (offset > wm->info.lBufOffset + wm->info.cchBuffer) ||
(offset > wm->dwFileSize && wm->info.fccIOProc != FOURCC_MEM) ||
!wm->bBufferLoaded)) {
diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c
index be91b41..5e440b8 100644
--- a/dlls/winmm/tests/mmio.c
+++ b/dlls/winmm/tests/mmio.c
@@ -695,7 +695,16 @@ static void test_mmioSeek(void)
if (hmmio != NULL) {
/* seek to the end */
end = mmioSeek(hmmio, 0, SEEK_END);
- todo_wine ok(end == size, "expected %d, got %d\n", size, end);
+ ok(end == size, "expected %d, got %d\n", size, end);
+
+ /* test MMIOINFO values */
+ res = mmioGetInfo(hmmio, &mmio, 0);
+ ok(res == MMSYSERR_NOERROR, "expected 0, got %d\n", res);
+ ok(mmio.pchNext == mmio.pchBuffer + mmio.cchBuffer, "expected %p + %d, got %p\n", mmio.pchBuffer, mmio.cchBuffer, mmio.pchNext);
+ ok(mmio.pchEndRead == mmio.pchBuffer + mmio.cchBuffer, "expected %p + %d, got %p\n", mmio.pchBuffer, mmio.cchBuffer, mmio.pchEndRead);
+ ok(mmio.pchEndWrite == mmio.pchBuffer + mmio.cchBuffer, "expected %p + %d, got %p\n", mmio.pchBuffer, mmio.cchBuffer, mmio.pchEndWrite);
+ ok(mmio.lBufOffset == 0, "expected %d, got %d\n", 0, mmio.lBufOffset);
+ ok(mmio.lDiskOffset == 0, "expected %d, got %d\n", 0, mmio.lDiskOffset);
/* seek backward from the end */
pos = mmioSeek(hmmio, offset, SEEK_END);
More information about the wine-cvs
mailing list