about summary refs log tree commit diff
path: root/src/rt/rust_shape.cpp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-01-12 09:28:29 -0800
committerNiko Matsakis <niko@alum.mit.edu>2012-01-12 13:47:38 -0800
commit263f4c58a0c9409f257d45ae03d4b19700ef232b (patch)
treeaf164d0b5f13701880e15c6c6fb6701c064eb006 /src/rt/rust_shape.cpp
parente55aa6e5ef60369710d8b2e6f512b2ef84a8c548 (diff)
downloadrust-263f4c58a0c9409f257d45ae03d4b19700ef232b.tar.gz
rust-263f4c58a0c9409f257d45ae03d4b19700ef232b.zip
add tydescs into shape, rewrite walk_fn_contents()
Diffstat (limited to 'src/rt/rust_shape.cpp')
-rw-r--r--src/rt/rust_shape.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/rt/rust_shape.cpp b/src/rt/rust_shape.cpp
index b7ab591ce04..961cfe7bc46 100644
--- a/src/rt/rust_shape.cpp
+++ b/src/rt/rust_shape.cpp
@@ -44,15 +44,7 @@ type_param::make(const type_desc **tydescs, unsigned n_tydescs,
     return ptrs;
 }
 
-// Constructs type parameters from a function shape. This is a bit messy,
-// because it requires that the function shape have a specific format.
-type_param *
-type_param::from_fn_shape(rust_opaque_closure *env, arena &arena) {
-    unsigned n_tydescs = env->td->n_obj_params & 0x7fffffff;
-    return make(env->captured_tds, n_tydescs, arena);
-}
-
-// Constructs type parameters from an object shape. This is also a bit messy,
+// Constructs type parameters from an object shape. This is a bit messy,
 // because it requires that the object shape have a specific format.
 type_param *
 type_param::from_obj_shape(const uint8_t *sp, ptr dp, arena &arena) {
@@ -354,6 +346,10 @@ public:
         data<cmp,ptr_pair>::walk_box_contents1();
     }
 
+    void walk_tydesc2(char) {
+        cmp_pointer();
+    }
+
     void walk_fn2(char) { return cmp_two_pointers(); }
     void walk_obj2()    { return cmp_two_pointers(); }