Chromium Code Reviews| Index: src/heap/mark-compact.cc |
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
| index 8a32ba8bda28d08c91b6876a3c4d9ed038fad9f6..ec0f7f02d911a900cd56f5c0b0fa925107706aaf 100644 |
| --- a/src/heap/mark-compact.cc |
| +++ b/src/heap/mark-compact.cc |
| @@ -3353,6 +3353,13 @@ bool MarkCompactCollector::EvacuateLiveObjectsFromPage( |
| HeapObject* target_object = nullptr; |
| AllocationResult allocation = target_space->AllocateRaw(size, alignment); |
| if (!allocation.To(&target_object)) { |
| + // We need to abort compaction for this page. Make sure that we reset |
| + // the mark bits for objects that have already been migrated. |
| + if (i > 0) { |
| + p->markbits()->ClearTillIndex( |
|
ulan
2015/10/08 12:43:14
As discussed offline, let's change the name to som
Michael Lippautz
2015/10/08 12:57:51
ClearRange it is.
|
| + p->AddressToMarkbitIndex(p->area_start()), |
| + p->AddressToMarkbitIndex(object_addr)); |
| + } |
| return false; |
| } |