mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-15 07:43:26 +00:00
Add wasOpened flag for windows, so not attempt close when unopened
This commit is contained in:
@@ -34,6 +34,7 @@ type
|
||||
when defined(windows):
|
||||
fHandle: int
|
||||
mapHandle: int
|
||||
wasOpened: bool
|
||||
else:
|
||||
handle: cint
|
||||
|
||||
@@ -172,6 +173,8 @@ proc open*(filename: string, mode: FileMode = fmRead,
|
||||
if mappedSize != -1: result.size = min(fileSize, mappedSize).int
|
||||
else: result.size = fileSize.int
|
||||
|
||||
result.wasOpened = true
|
||||
|
||||
else:
|
||||
template fail(errCode: OSErrorCode, msg: expr) =
|
||||
rollback()
|
||||
@@ -226,7 +229,7 @@ proc close*(f: var MemFile) =
|
||||
var lastErr: OSErrorCode
|
||||
|
||||
when defined(windows):
|
||||
if f.fHandle != INVALID_HANDLE_VALUE:
|
||||
if f.fHandle != INVALID_HANDLE_VALUE and wasOpened:
|
||||
error = unmapViewOfFile(f.mem) == 0
|
||||
lastErr = osLastError()
|
||||
error = (closeHandle(f.mapHandle) == 0) or error
|
||||
|
||||
Reference in New Issue
Block a user