| 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;
 | 
|  };
 | 
| 
 |