about summary refs log tree commit diff
path: root/src/rt/rust_shape.cpp
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-09-21 19:07:41 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-09-21 19:08:26 -0700
commit8c02adc630b9786dbc0ccd0f680d37c840bc49b9 (patch)
treee998c8cb68380ee8320adaa824eb83e770a39d9f /src/rt/rust_shape.cpp
parentad3b9c41b47090b94237fd7d4429d1431ecb8181 (diff)
downloadrust-8c02adc630b9786dbc0ccd0f680d37c840bc49b9.tar.gz
rust-8c02adc630b9786dbc0ccd0f680d37c840bc49b9.zip
rustc: Port the fn and obj traversal logic over from the GC branch. Doesn't actually do anything yet due to lack of support in trans.
Diffstat (limited to 'src/rt/rust_shape.cpp')
-rw-r--r--src/rt/rust_shape.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rt/rust_shape.cpp b/src/rt/rust_shape.cpp
index c6ee35717dc..d25c340264e 100644
--- a/src/rt/rust_shape.cpp
+++ b/src/rt/rust_shape.cpp
@@ -37,7 +37,7 @@ type_param::make(const type_desc **tydescs, unsigned n_tydescs,
         const type_desc *subtydesc = tydescs[i];
         ptrs[i].shape = subtydesc->shape;
         ptrs[i].tables = subtydesc->shape_tables;
-        ptrs[i].params = from_tydesc(subtydesc, arena);
+        ptrs[i].params = from_tydesc(&subtydesc, arena);
     }
     return ptrs;
 }
@@ -527,11 +527,12 @@ log::walk_res(const rust_fn *dtor, unsigned n_params,
 } // end namespace shape
 
 extern "C" void
-upcall_cmp_type(int8_t *result, rust_task *task, type_desc *tydesc,
+upcall_cmp_type(int8_t *result, rust_task *task, const type_desc *tydesc,
                 const type_desc **subtydescs, uint8_t *data_0,
                 uint8_t *data_1, uint8_t cmp_type) {
     shape::arena arena;
-    shape::type_param *params = shape::type_param::from_tydesc(tydesc, arena);
+    shape::type_param *params =
+        shape::type_param::from_tydesc(&tydesc, arena);
     shape::cmp cmp(task, true, tydesc->shape, params, tydesc->shape_tables,
                    data_0, data_1);
     cmp.walk();
@@ -544,13 +545,14 @@ upcall_cmp_type(int8_t *result, rust_task *task, type_desc *tydesc,
 }
 
 extern "C" void
-upcall_log_type(rust_task *task, type_desc *tydesc, uint8_t *data,
+upcall_log_type(rust_task *task, const type_desc *tydesc, uint8_t *data,
                 uint32_t level) {
     if (task->sched->log_lvl < level)
         return;     // TODO: Don't evaluate at all?
 
     shape::arena arena;
-    shape::type_param *params = shape::type_param::from_tydesc(tydesc, arena);
+    shape::type_param *params =
+        shape::type_param::from_tydesc(&tydesc, arena);
 
     std::stringstream ss;
     shape::log log(task, true, tydesc->shape, params, tydesc->shape_tables,