diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2013-04-07 13:40:01 +0100 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@googlemail.com> | 2013-04-07 13:40:01 +0100 |
commit | d26e4883165cef1e6171094590021c0a674eccbf (patch) | |
tree | f4bded42cf23c4a5dda41d816f9b9c5595a6be18 /lib/pure | |
parent | f9d4e39a12238d48cd7b8ab461055fe48b989967 (diff) | |
download | Nim-d26e4883165cef1e6171094590021c0a674eccbf.tar.gz |
A file stream now makes sure to only close its file descriptor once.
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/streams.nim | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim index 581db3163..4a196127c 100644 --- a/lib/pure/streams.nim +++ b/lib/pure/streams.nim @@ -238,7 +238,10 @@ type TFileStream* = object of TStream f: TFile -proc fsClose(s: PStream) = close(PFileStream(s).f) +proc fsClose(s: PStream) = + if PFileStream(s).f != nil: + close(PFileStream(s).f) + PFileStream(s).f = nil proc fsFlush(s: PStream) = flushFile(PFileStream(s).f) proc fsAtEnd(s: PStream): bool = return EndOfFile(PFileStream(s).f) proc fsSetPosition(s: PStream, pos: int) = setFilePos(PFileStream(s).f, pos) |