about summary refs log tree commit diff
path: root/src/rt/rust_shape.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-09-21 17:07:29 -0700
committerBrian Anderson <banderson@mozilla.com>2011-09-21 17:08:40 -0700
commita993621e43eeb6d4303d1f78faaf54cc881d49ab (patch)
tree4e3fbedd50ee65aa78acc8772b2595e98b4709d7 /src/rt/rust_shape.cpp
parent42fd2a9d89e87e8840324873df23ab76ed2f4d3d (diff)
downloadrust-a993621e43eeb6d4303d1f78faaf54cc881d49ab.tar.gz
rust-a993621e43eeb6d4303d1f78faaf54cc881d49ab.zip
Log and compare unique boxes
Issue #409
Diffstat (limited to 'src/rt/rust_shape.cpp')
-rw-r--r--src/rt/rust_shape.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/rt/rust_shape.cpp b/src/rt/rust_shape.cpp
index 7f242143d51..c6ee35717dc 100644
--- a/src/rt/rust_shape.cpp
+++ b/src/rt/rust_shape.cpp
@@ -279,6 +279,12 @@ private:
         result = sub.result;
     }
 
+    inline void walk_uniq_contents(cmp &sub) {
+        sub.align = true;
+        sub.walk();
+        result = sub.result;
+    }
+
     inline void cmp_two_pointers() {
         ALIGN_TO(alignof<void *>() * 2);
         data_pair<uint8_t *> fst = bump_dp<uint8_t *>(dp);
@@ -341,6 +347,10 @@ public:
         data<cmp,ptr_pair>::walk_box_contents();
     }
 
+    void walk_uniq() {
+        data<cmp,ptr_pair>::walk_uniq_contents();
+    }
+
     void walk_fn()  { return cmp_two_pointers(); }
     void walk_obj() { return cmp_two_pointers(); }