diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-04-15 20:03:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-04-15 20:03:56 -0700 |
commit | f200086eff39c729cbdbb5dbdcb97b134f3fdd0d (patch) | |
tree | 66d1853e84c8ed28a6fff176eb401db8cb6d5372 /eval.c | |
parent | 50b5651649f71c7f1e4c480504b61cea04d8f789 (diff) | |
download | txr-f200086eff39c729cbdbb5dbdcb97b134f3fdd0d.tar.gz txr-f200086eff39c729cbdbb5dbdcb97b134f3fdd0d.tar.bz2 txr-f200086eff39c729cbdbb5dbdcb97b134f3fdd0d.zip |
Close source files after parsing.
* eval.c (sys_load): close stream in all cases.
* match.c (v_load): Likewise.
* parser.c (load_rcfile): Close stream in unwind
block, if open.
* txr.c (txr_main): Close stream after parsing
in all cases. If stream is std_input, or a string stream,
close_stream does nothing.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -3261,15 +3261,18 @@ static val sys_load(val target, val sloc) open_txr_file(path, &txr_lisp_p, &name, &stream); if (!txr_lisp_p) { + close_stream(stream, nil); rlset(sloc, sloc); eval_error(sloc, lit("load doesn't process .txr files"), nao); } if (!read_eval_stream(stream, std_error, nil)) { rlset(sloc, sloc); + close_stream(stream, nil); eval_error(sloc, lit("load: ~s contains errors"), path, nao); } + close_stream(stream, nil); return nil; } |