about summary refs log tree commit diff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-03-23 17:51:54 -0700
committerBrian Anderson <banderson@mozilla.com>2012-03-29 16:43:18 -0700
commit3a7a408386b8b1fbeb82cf6d695a168296c02793 (patch)
treed4716b29380eb27c3b361bd8ed12a3a22d1aa5d5 /src/rt/rust_task.cpp
parent106c9faa59c1a605d7e0d67da5b45d24863ec009 (diff)
downloadrust-3a7a408386b8b1fbeb82cf6d695a168296c02793.tar.gz
rust-3a7a408386b8b1fbeb82cf6d695a168296c02793.zip
rt: Free all outstanding boxes at task death
Diffstat (limited to 'src/rt/rust_task.cpp')
-rw-r--r--src/rt/rust_task.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index b06a2b2d8b7..de3069ddf58 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -88,11 +88,16 @@ struct cleanup_args {
 };
 
 void
+annihilate_boxes(rust_task *task);
+
+void
 cleanup_task(cleanup_args *args) {
     spawn_args *a = args->spargs;
     bool threw_exception = args->threw_exception;
     rust_task *task = a->task;
 
+    cc::do_cc(task);
+    annihilate_boxes(task);
     cc::do_final_cc(task);
 
     task->die();