diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-09-26 15:06:26 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-09-26 16:59:15 -0700 |
| commit | ad19ab4c6fdf3ea74ac0ff3688d040a852f30760 (patch) | |
| tree | a4f501f24bc3867388b3d6aac3af5120d39c0205 /src/rt/rust_cc.cpp | |
| parent | 47e5ab093a89fbe240e67be6a59c901f32d5ce4f (diff) | |
| download | rust-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_cc.cpp')
| -rw-r--r-- | src/rt/rust_cc.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/rt/rust_cc.cpp b/src/rt/rust_cc.cpp index 9d6c4992b17..c53ec1aa51c 100644 --- a/src/rt/rust_cc.cpp +++ b/src/rt/rust_cc.cpp @@ -178,16 +178,22 @@ irc::compute_ircs(rust_task *task, irc_map &ircs) { shape::arena arena; shape::type_param *params = shape::type_param::from_tydesc_and_data(tydesc, p, arena); - irc irc(task, true, tydesc->shape, params, tydesc->shape_tables, - p + sizeof(uintptr_t), ircs); - irc.walk(); #if 0 + shape::print print(task, true, tydesc->shape, params, + tydesc->shape_tables); + print.walk(); + shape::log log(task, true, tydesc->shape, params, - tydesc->shape_tables, p, std::cerr); + tydesc->shape_tables, p + sizeof(uintptr_t), + std::cerr); log.walk(); #endif + irc irc(task, true, tydesc->shape, params, tydesc->shape_tables, + p + sizeof(uintptr_t), ircs); + irc.walk(); + ++begin; } } |
