Index: src/objects-visiting-inl.h |
diff --git a/src/objects-visiting-inl.h b/src/objects-visiting-inl.h |
index d5dd44eeba12e2b6a3b25cc1ad435e3315470d1a..93b7cb96adb019c03a33a931edd174fee4817597 100644 |
--- a/src/objects-visiting-inl.h |
+++ b/src/objects-visiting-inl.h |
@@ -185,6 +185,8 @@ void StaticMarkingVisitor<StaticVisitor>::Initialize() { |
table_.Register(kVisitFixedDoubleArray, &DataObjectVisitor::Visit); |
+ table_.Register(kVisitConstantPoolArray, &VisitConstantPoolArray); |
+ |
table_.Register(kVisitNativeContext, &VisitNativeContext); |
table_.Register(kVisitAllocationSite, |
@@ -450,6 +452,22 @@ void StaticMarkingVisitor<StaticVisitor>::VisitSharedFunctionInfo( |
template<typename StaticVisitor> |
+void StaticMarkingVisitor<StaticVisitor>::VisitConstantPoolArray( |
+ Map* map, HeapObject* object) { |
+ Heap* heap = map->GetHeap(); |
+ ConstantPoolArray* constant_pool = ConstantPoolArray::cast(object); |
+ int first_ptr_offset = constant_pool->OffsetOfElementAt( |
+ constant_pool->first_ptr_index()); |
+ int last_ptr_offset = constant_pool->OffsetOfElementAt( |
+ constant_pool->first_ptr_index() + constant_pool->count_of_ptr_entries()); |
+ StaticVisitor::VisitPointers( |
+ heap, |
+ HeapObject::RawField(object, first_ptr_offset), |
+ HeapObject::RawField(object, last_ptr_offset)); |
+} |
+ |
+ |
+template<typename StaticVisitor> |
void StaticMarkingVisitor<StaticVisitor>::VisitJSFunction( |
Map* map, HeapObject* object) { |
Heap* heap = map->GetHeap(); |