| Index: src/mark-compact.cc
|
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc
|
| index 7c03a49e8536a4ace1e0e4aaa73eddeb22031a08..a9a90bdf64d38d295383bc2731a56a1869476702 100644
|
| --- a/src/mark-compact.cc
|
| +++ b/src/mark-compact.cc
|
| @@ -1548,8 +1548,7 @@ class MarkCompactMarkingVisitor::ObjectStatsTracker<
|
| Map* map_obj = Map::cast(obj);
|
| ASSERT(map->instance_type() == MAP_TYPE);
|
| DescriptorArray* array = map_obj->instance_descriptors();
|
| - if (map_obj->owns_descriptors() &&
|
| - array != heap->empty_descriptor_array()) {
|
| + if (array != heap->empty_descriptor_array()) {
|
| int fixed_array_size = array->Size();
|
| heap->RecordObjectStats(FIXED_ARRAY_TYPE,
|
| DESCRIPTOR_ARRAY_SUB_TYPE,
|
| @@ -1943,10 +1942,10 @@ void Marker<T>::MarkTransitionArray(TransitionArray* transitions) {
|
| if (!base_marker()->MarkObjectWithoutPush(transitions)) return;
|
| Object** transitions_start = transitions->data_start();
|
|
|
| - // We don't have to record the descriptors_pointer slot since the cell space
|
| - // is not compacted.
|
| - JSGlobalPropertyCell* descriptors_cell = transitions->descriptors_pointer();
|
| - base_marker()->MarkObjectAndPush(descriptors_cell);
|
| + DescriptorArray* descriptors = transitions->descriptors();
|
| + base_marker()->MarkObjectAndPush(descriptors);
|
| + mark_compact_collector()->RecordSlot(
|
| + transitions_start, transitions->GetDescriptorsSlot(), descriptors);
|
|
|
| if (transitions->HasPrototypeTransitions()) {
|
| // Mark prototype transitions array but don't push it into marking stack.
|
|
|