summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/memfiles.nim23
1 files changed, 19 insertions, 4 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index 61eff3295..b74242370 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -36,11 +36,26 @@ type
     size*: int       ## size of the memory mapped file
 
     when defined(windows):
-      fHandle*: Handle
-      mapHandle*: Handle
-      wasOpened*: bool   ## only close if wasOpened
+      fHandle: Handle
+      mapHandle: Handle
+      wasOpened: bool   ## only close if wasOpened
     else:
-      handle*: cint
+      handle: cint
+
+when defined(windows):
+  proc fHandle*(m: MemFile): Handle = m.fHandle
+  proc mapHandle*(m: MemFile): Handle = m.mapHandle
+  proc wasOpened*(m: MemFile): bool = m.wasOpened
+  proc `fHandle=`*(m: var MemFile, fHandle: Handle) =
+    m.fHandle = fHandle
+  proc `mapHandle=`*(m: var MemFile, mapHandle: Handle) =
+    m.mapHandle = mapHandle
+  proc `wasOpened=`*(m: var MemFile, wasOpened: bool) =
+    m.wasOpened = wasOpened
+else:
+  proc handle*(m: MemFile): cint = m.handle
+  proc `handle=`*(m: var MemFile, handle: cint) =
+    m.handle = handle
 
 proc mapMem*(m: var MemFile, mode: FileMode = fmRead,
              mappedSize = -1, offset = 0): pointer =