Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index f309eae9d1406150cd4dba059e238e0254d7c4ae..f7899c960440932a1a6c3c931755632a1bd7e497 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -2521,13 +2521,14 @@ void MarkCompactCollector::ClearMapTransitions(Map* map) { |
// Note that we never eliminate a transition array, though we might right-trim |
// such that number_of_transitions() == 0. If this assumption changes, |
- // TransitionArray::CopyInsert() will need to deal with the case that a |
- // transition array disappeared during GC. |
- int trim = t->number_of_transitions() - transition_index; |
+ // TransitionArray::Insert() will need to deal with the case that a transition |
+ // array disappeared during GC. |
+ int trim = t->number_of_transitions_storage() - transition_index; |
if (trim > 0) { |
heap_->RightTrimFixedArray<Heap::FROM_GC>( |
t, t->IsSimpleTransition() ? trim |
: trim * TransitionArray::kTransitionSize); |
+ t->SetNumberOfTransitions(transition_index); |
} |
DCHECK(map->HasTransitionArray()); |
} |