Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 530fb6d804d5d7eb5a4bccd380eaa40b60733ff3..26cb3c53dc92a5008151669e849a998710f4e107 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -1737,6 +1737,9 @@ void HeapObject::IterateBody(InstanceType type, int object_size, |
case FIXED_ARRAY_TYPE: |
FixedArray::BodyDescriptor::IterateBody(this, object_size, v); |
break; |
+ case CONSTANT_POOL_ARRAY_TYPE: |
+ reinterpret_cast<ConstantPoolArray*>(this)->ConstantPoolIterateBody(v); |
+ break; |
case FIXED_DOUBLE_ARRAY_TYPE: |
break; |
case JS_OBJECT_TYPE: |
@@ -9362,6 +9365,16 @@ bool Map::EquivalentToForNormalization(Map* other, |
} |
+void ConstantPoolArray::ConstantPoolIterateBody(ObjectVisitor* v) { |
+ int first_ptr_offset = OffsetOfElementAt(first_ptr_index()); |
+ int last_ptr_offset = |
+ OffsetOfElementAt(first_ptr_index() + count_of_ptr_entries()); |
+ v->VisitPointers( |
+ HeapObject::RawField(this, first_ptr_offset), |
+ HeapObject::RawField(this, last_ptr_offset)); |
+} |
+ |
+ |
void JSFunction::JSFunctionIterateBody(int object_size, ObjectVisitor* v) { |
// Iterate over all fields in the body but take care in dealing with |
// the code entry. |