about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2011-02-22 18:07:47 -0800
committerGraydon Hoare <graydon@mozilla.com>2011-02-22 18:07:47 -0800
commitd7f7634c955deaf55cf11071d5e92300a059be61 (patch)
tree6a41aa234c13500bd970ce56b1e77a388b485a38 /src/comp
parentaf4d6ae76b05d4edb9d7074b971600a447c9c9a4 (diff)
downloadrust-d7f7634c955deaf55cf11071d5e92300a059be61.tar.gz
rust-d7f7634c955deaf55cf11071d5e92300a059be61.zip
Drop for-loop temporary at end of scope, fixes memory leak.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/trans.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 4a672f49139..6a19a6e57f9 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -2189,6 +2189,7 @@ fn trans_for(@block_ctxt cx,
         cx.build.Br(scope_cx.llbb);
         auto local_res = alloc_local(scope_cx, local);
         auto bcx = copy_ty(local_res.bcx, INIT, local_res.val, curr, t).bcx;
+        scope_cx.cleanups += clean(bind drop_slot(_, local_res.val, t));
         bcx = trans_block(bcx, body).bcx;
         bcx.build.Br(next_cx.llbb);
         ret res(next_cx, C_nil());