From 11a5d10bf2958c642ae6a7c4afff8e181aa2167d Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 3 May 2012 12:56:55 -0700 Subject: Implement better shape code for evec, estr. --- src/rt/rust_box_annihilator.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/rt/rust_box_annihilator.cpp') diff --git a/src/rt/rust_box_annihilator.cpp b/src/rt/rust_box_annihilator.cpp index 6322c528791..bc5e0dfdda5 100644 --- a/src/rt/rust_box_annihilator.cpp +++ b/src/rt/rust_box_annihilator.cpp @@ -49,8 +49,16 @@ class annihilator : public shape::data { task->kernel->free(vec); } + void walk_fixedvec2(uint16_t sz, bool is_pod) { + walk_vec2(is_pod, get_fixedvec_data_range(sz, dp)); + } + void walk_vec2(bool is_pod, const std::pair &data_range) { + + if (is_pod) + return; + annihilator sub(*this, data_range.first); shape::ptr data_end = sub.end_dp = data_range.second; while (sub.dp < data_end) { @@ -64,6 +72,10 @@ class annihilator : public shape::data { ::walk_variant1(tinfo, tag_variant); } + void walk_rptr2() { } + + void walk_slice2(bool, bool) { } + void walk_uniq2() { void *x = *((void **)dp); // free contents first: -- cgit 1.4.1-3-g733a5