summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-09-18 12:16:37 +0200
committerAraq <rumpf_a@web.de>2019-09-18 12:16:52 +0200
commitf8000d4ba14414657b2255fda3ca058074166b76 (patch)
tree72f9c12061e571d0ba6d13afb525d6fa382b24d8 /lib
parent48537fec814e556dcb12183c31061c4645d7b743 (diff)
downloadNim-f8000d4ba14414657b2255fda3ca058074166b76.tar.gz
fixes #12186
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/memfiles.nim2
-rw-r--r--lib/windows/winlean.nim9
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index 277c4ddb6..68eacaa36 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -60,7 +60,7 @@ proc mapMem*(m: var MemFile, mode: FileMode = fmRead,
       if readonly: FILE_MAP_READ else: FILE_MAP_READ or FILE_MAP_WRITE,
       int32(offset shr 32),
       int32(offset and 0xffffffff),
-      if mappedSize == -1: 0 else: mappedSize,
+      WinSizeT(if mappedSize == -1: 0 else: mappedSize),
       nil)
     if result == nil:
       raiseOSError(osLastError())
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim
index 4e2db7ac2..1eba3ac36 100644
--- a/lib/windows/winlean.nim
+++ b/lib/windows/winlean.nim
@@ -745,9 +745,16 @@ proc setFilePointer*(hFile: Handle, lDistanceToMove: LONG,
 proc getFileSize*(hFile: Handle, lpFileSizeHigh: ptr DWORD): DWORD{.stdcall,
     dynlib: "kernel32", importc: "GetFileSize".}
 
+when defined(cpu32):
+  type
+    WinSizeT* = uint32
+else:
+  type
+    WinSizeT* = uint64
+
 proc mapViewOfFileEx*(hFileMappingObject: Handle, dwDesiredAccess: DWORD,
                       dwFileOffsetHigh, dwFileOffsetLow: DWORD,
-                      dwNumberOfBytesToMap: DWORD,
+                      dwNumberOfBytesToMap: WinSizeT,
                       lpBaseAddress: pointer): pointer{.
     stdcall, dynlib: "kernel32", importc: "MapViewOfFileEx".}