From e190f485ae7aaa89c989570c97c199884b66dab6 Mon Sep 17 00:00:00 2001 From: Vindaar Date: Sat, 20 Oct 2018 20:35:04 +0200 Subject: [PATCH 1/2] fixes #9456 by only calling `c_fclose` if non nil --- lib/system/sysio.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/system/sysio.nim b/lib/system/sysio.nim index 61835e0f7e..20964b166a 100644 --- a/lib/system/sysio.nim +++ b/lib/system/sysio.nim @@ -130,7 +130,10 @@ else: const BufSize = 4000 -proc close*(f: File) = discard c_fclose(f) +proc close*(f: File) = + if not f.isNil: + discard c_fclose(f) + proc readChar(f: File): char = let x = c_fgetc(f) if x < 0: From 557fa85e0270c0433b98bf965b5eeac4ef0e06f7 Mon Sep 17 00:00:00 2001 From: Vindaar Date: Sat, 20 Oct 2018 20:36:32 +0200 Subject: [PATCH 2/2] add test case --- tests/stdlib/tissues.nim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/stdlib/tissues.nim b/tests/stdlib/tissues.nim index 6d886a5538..b5a1c8206b 100644 --- a/tests/stdlib/tissues.nim +++ b/tests/stdlib/tissues.nim @@ -103,3 +103,7 @@ block t5349: for line in lines("test.txt"): echo line + +block t9456: + var f: File + f.close()