| Index: src/heap/mark-compact.h
|
| diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h
|
| index 3680dcf1c6a5e8b5b498593b334a542a6373a47a..ddb993f5a2f676491e732da2a1a39cae26c48b59 100644
|
| --- a/src/heap/mark-compact.h
|
| +++ b/src/heap/mark-compact.h
|
| @@ -603,7 +603,11 @@ class MarkCompactCollector {
|
| // to other evacuation candidates thus we have to
|
| // rescan the page after evacuation to discover and update all
|
| // pointers to evacuated objects.
|
| - page->SetFlag(Page::RESCAN_ON_EVACUATION);
|
| + if (page->owner()->identity() == OLD_DATA_SPACE) {
|
| + evacuation_candidates_.RemoveElement(page);
|
| + } else {
|
| + page->SetFlag(Page::RESCAN_ON_EVACUATION);
|
| + }
|
| }
|
|
|
| void RecordRelocSlot(RelocInfo* rinfo, Object* target);
|
| @@ -903,7 +907,8 @@ class MarkCompactCollector {
|
| List<Page*> evacuation_candidates_;
|
| List<Code*> invalidated_code_;
|
|
|
| - SmartPointer<FreeList> free_list_old_space_;
|
| + SmartPointer<FreeList> free_list_old_data_space_;
|
| + SmartPointer<FreeList> free_list_old_pointer_space_;
|
|
|
| friend class Heap;
|
| };
|
|
|