about summary refs log tree commit diff
path: root/src/rt/rust_builtin.cpp
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-09-26 15:06:26 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-09-26 16:59:15 -0700
commitad19ab4c6fdf3ea74ac0ff3688d040a852f30760 (patch)
treea4f501f24bc3867388b3d6aac3af5120d39c0205 /src/rt/rust_builtin.cpp
parent47e5ab093a89fbe240e67be6a59c901f32d5ce4f (diff)
downloadrust-ad19ab4c6fdf3ea74ac0ff3688d040a852f30760.tar.gz
rust-ad19ab4c6fdf3ea74ac0ff3688d040a852f30760.zip
rt: Make the logic that moves environments between tasks update the GC alloc chain correctly
Diffstat (limited to 'src/rt/rust_builtin.cpp')
-rw-r--r--src/rt/rust_builtin.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp
index 3d89aa918ce..7226171e9f1 100644
--- a/src/rt/rust_builtin.cpp
+++ b/src/rt/rust_builtin.cpp
@@ -456,8 +456,8 @@ migrate_alloc(rust_task *task, void *alloc, rust_task_id tid) {
     if(!alloc) return;
     rust_task *target = task->kernel->get_task_by_id(tid);
     if(target) {
-        task->local_region.release_alloc(alloc);
-        target->local_region.claim_alloc(alloc);
+        const type_desc *tydesc = task->release_alloc(alloc);
+        target->claim_alloc(alloc, tydesc);
         target->deref();
     }
     else {