summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJamesP <jlp765@gmail.com>2015-09-24 09:04:55 +1000
committerJamesP <jlp765@gmail.com>2015-09-24 09:04:55 +1000
commit305766a9fa079cbb96e8a80b3531b4c656a5e040 (patch)
treea984dde8dfbebee36af6050911e530f8ec3af426
parentbdc1c5ee84977300265ea87d3cafa34fbcfc8a1d (diff)
downloadNim-305766a9fa079cbb96e8a80b3531b4c656a5e040.tar.gz
Bug fix: change non-fmRead file mode to set GENERIC_READ or GENERIC_WRITE
instead of GENERIC_ALL
which on 64bit windows rasied an [OSError] exception
-rw-r--r--lib/pure/memfiles.nim3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index 633fd71eb..b9c574944 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -116,7 +116,8 @@ proc open*(filename: string, mode: FileMode = fmRead,
     template callCreateFile(winApiProc, filename: expr): expr =
       winApiProc(
         filename,
-        if readonly: GENERIC_READ else: GENERIC_ALL,
+        # GENERIC_ALL != (GENERIC_READ or GENERIC_WRITE)
+        if readonly: GENERIC_READ else: GENERIC_READ or GENERIC_WRITE,
         FILE_SHARE_READ,
         nil,
         if newFileSize != -1: CREATE_ALWAYS else: OPEN_EXISTING,