summary refs log tree commit diff stats
path: root/lib/system.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-02-05 03:30:48 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-02-05 03:30:48 +0100
commitcf9d8d6bba5b0a713e8c0edf15499545b1dc4244 (patch)
tree21c77b2d93e4b2774aab52496231b79debcc8120 /lib/system.nim
parentac1e7a245093bb28a1a366f1e169ab50e6660c94 (diff)
parent17dff030ae4eab34c06117aef97aac0c3ad9342a (diff)
downloadNim-cf9d8d6bba5b0a713e8c0edf15499545b1dc4244.tar.gz
Merge pull request #3814 from scriptum/fix-3802
Use defer in iterator to avoid possible leaks
Diffstat (limited to 'lib/system.nim')
-rw-r--r--lib/system.nim2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/system.nim b/lib/system.nim
index 69c6e1290..1a0a11ff0 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -2960,9 +2960,9 @@ when not defined(JS): #and not defined(nimscript):
       ##       buffer.add(line.replace("a", "0") & '\x0A')
       ##     writeFile(filename, buffer)
       var f = open(filename, bufSize=8000)
+      defer: close(f)
       var res = TaintedString(newStringOfCap(80))
       while f.readLine(res): yield res
-      close(f)
 
     iterator lines*(f: File): TaintedString {.tags: [ReadIOEffect].} =
       ## Iterate over any line in the file `f`.