summary refs log tree commit diff stats
path: root/lib/system.nim
diff options
context:
space:
mode:
authorPavel Roschin <roshin@scriptumplus.ru>2016-02-02 23:20:39 +0300
committerPavel Roschin <roshin@scriptumplus.ru>2016-02-02 23:20:39 +0300
commit17dff030ae4eab34c06117aef97aac0c3ad9342a (patch)
treed7620acb99ed6416b8f07e227d1214f6e735951a /lib/system.nim
parent3e33084da7ed51818335ba785c2de837a4d653db (diff)
downloadNim-17dff030ae4eab34c06117aef97aac0c3ad9342a.tar.gz
Use defer in iterator to avoid possible leaks. Fixes #3802
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`.