summary refs log tree commit diff
path: root/src/rt
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2012-06-15 05:53:35 -0700
committerMichael Sullivan <sully@msully.net>2012-06-15 15:31:19 -0700
commit999ab5418a769cfcbde7c7291785bb98c5fd2a5f (patch)
treeaa51311d88c544d764d119345abdf93de3a5dc21 /src/rt
parent210db7d8d4d0b65a2ae2b113ef50740c20cbd910 (diff)
downloadrust-999ab5418a769cfcbde7c7291785bb98c5fd2a5f.tar.gz
rust-999ab5418a769cfcbde7c7291785bb98c5fd2a5f.zip
Make the shape interpreter actually advance past fixed length vectors. Closes #2613.
Diffstat (limited to 'src/rt')
-rw-r--r--src/rt/rust_shape.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/rt/rust_shape.h b/src/rt/rust_shape.h
index 8766759cc41..0de19321050 100644
--- a/src/rt/rust_shape.h
+++ b/src/rt/rust_shape.h
@@ -923,7 +923,9 @@ public:
     void walk_fixedvec1(uint16_t n_elts, bool is_pod) {
         size_align sa = size_of::get(*this);
         ALIGN_TO(sa.alignment);
+        U next_dp = dp + (n_elts * sa.size);
         static_cast<T *>(this)->walk_fixedvec2(n_elts, sa.size, is_pod);
+        dp = next_dp;
     }
 
     void walk_box1() { DATA_SIMPLE(void *, walk_box2()); }