Index: src/objects-visiting-inl.h |
diff --git a/src/objects-visiting-inl.h b/src/objects-visiting-inl.h |
index 6f0f61d351b602c4f204a64b2f760ef1c65d25e8..12b044ca989f7780580ce654359309602aaf378c 100644 |
--- a/src/objects-visiting-inl.h |
+++ b/src/objects-visiting-inl.h |
@@ -104,7 +104,10 @@ void Code::CodeIterateBody(ObjectVisitor* v) { |
RelocInfo::ModeMask(RelocInfo::DEBUG_BREAK_SLOT) | |
RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY); |
+ // There are two places where we iterate code bodies: here and the |
+ // templated CodeIterateBody (below). They should be kept in sync. |
IteratePointer(v, kRelocationInfoOffset); |
+ IteratePointer(v, kHandlerTableOffset); |
IteratePointer(v, kDeoptimizationDataOffset); |
RelocIterator it(this, mode_mask); |
@@ -124,11 +127,16 @@ void Code::CodeIterateBody(Heap* heap) { |
RelocInfo::ModeMask(RelocInfo::DEBUG_BREAK_SLOT) | |
RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY); |
+ // There are two places where we iterate code bodies: here and the |
+ // non-templated CodeIterateBody (above). They should be kept in sync. |
StaticVisitor::VisitPointer( |
heap, |
reinterpret_cast<Object**>(this->address() + kRelocationInfoOffset)); |
StaticVisitor::VisitPointer( |
heap, |
+ reinterpret_cast<Object**>(this->address() + kHandlerTableOffset)); |
+ StaticVisitor::VisitPointer( |
+ heap, |
reinterpret_cast<Object**>(this->address() + kDeoptimizationDataOffset)); |
RelocIterator it(this, mode_mask); |