Chromium Code Reviews| Index: src/heap/mark-compact.cc |
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
| index b929d8567f5c7463a35873db6674d0080c4d5009..e7e9165fc7527153806f8f4a01a08f217fb1be94 100644 |
| --- a/src/heap/mark-compact.cc |
| +++ b/src/heap/mark-compact.cc |
| @@ -1960,6 +1960,8 @@ void MarkCompactCollector::MarkRoots(RootMarkingVisitor* visitor) { |
| MarkWeakObjectToCodeTable(); |
| + heap()->IterateEmbeddedMapCache(visitor); |
| + |
| // There may be overflowed objects in the heap. Visit them now. |
| while (marking_deque_.overflowed()) { |
| RefillMarkingDeque(); |
| @@ -2199,6 +2201,8 @@ void MarkCompactCollector::MarkLiveObjects() { |
| ProcessTopOptimizedFrame(&root_visitor); |
| + ProcessMarkingDeque(); |
|
Hannes Payer (out of office)
2014/11/17 17:34:33
Why?
|
| + |
| // The objects reachable from the roots are marked, yet unreachable |
| // objects are unmarked. Mark objects reachable due to host |
| // application specific logic or through Harmony weak maps. |
| @@ -3533,6 +3537,10 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() { |
| table->Rehash(heap_->isolate()->factory()->undefined_value()); |
| } |
| + updating_visitor.VisitPointer(heap_->embedded_map_cache_address()); |
| + // No need to iterate the contents of the embedded map cache since |
|
Hannes Payer (out of office)
2014/11/17 17:34:33
Please move the comment before updating_visitor.Vi
|
| + // maps do not move. |
| + |
| // Update pointers from external string table. |
| heap_->UpdateReferencesInExternalStringTable( |
| &UpdateReferenceInExternalStringTableEntry); |