From b722dc36a5b3db7e3b8445103644d1a23c85796d Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 30 Aug 2011 15:56:42 -0700 Subject: rt: Fix logging of type-parametric resources --- src/rt/rust_shape.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/rt/rust_shape.cpp') diff --git a/src/rt/rust_shape.cpp b/src/rt/rust_shape.cpp index 71a11a7d758..091dd8e2d36 100644 --- a/src/rt/rust_shape.cpp +++ b/src/rt/rust_shape.cpp @@ -110,21 +110,22 @@ print::walk_struct(bool align, const uint8_t *end_sp) { } void -print::walk_res(bool align, const rust_fn *dtor, uint16_t n_ty_params, - const uint8_t *ty_params_sp, const uint8_t *end_sp) { +print::walk_res(bool align, const rust_fn *dtor, unsigned n_params, + const type_param *params, const uint8_t *end_sp) { DPRINT("res@%p", dtor); // Print type parameters. - if (n_ty_params) { + if (n_params) { DPRINT("<"); bool first = true; - for (uint16_t i = 0; i < n_ty_params; i++) { + for (uint16_t i = 0; i < n_params; i++) { if (!first) DPRINT(","); first = false; - get_u16_bump(sp); // Skip over the size. - walk(align); + + ctxt sub(*this, params[i].shape); + sub.walk(align); } DPRINT(">"); @@ -347,7 +348,7 @@ public: const data_pair &tag_variants); void walk_struct(bool align, const uint8_t *end_sp); void walk_res(bool align, const rust_fn *dtor, uint16_t n_ty_params, - const uint8_t *ty_params_sp, const uint8_t *end_sp, + const type_param *ty_params_sp, const uint8_t *end_sp, const data_pair &live); void walk_variant(bool align, tag_info &tinfo, uint32_t variant_id, const std::pair @@ -400,7 +401,7 @@ cmp::walk_struct(bool align, const uint8_t *end_sp) { void cmp::walk_res(bool align, const rust_fn *dtor, uint16_t n_ty_params, - const uint8_t *ty_params_sp, const uint8_t *end_sp, + const type_param *ty_params_sp, const uint8_t *end_sp, const data_pair &live) { abort(); // TODO } @@ -502,9 +503,8 @@ log::walk_variant(bool align, tag_info &tinfo, uint32_t variant_id, } void -log::walk_res(bool align, const rust_fn *dtor, uint16_t n_ty_params, - const uint8_t *ty_params_sp, const uint8_t *end_sp, - bool live) { +log::walk_res(bool align, const rust_fn *dtor, unsigned n_params, + const type_param *params, const uint8_t *end_sp, bool live) { out << "res"; if (this->sp == end_sp) -- cgit 1.4.1-3-g733a5