Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index d161b1853d8afb662193e416dfa471380f93164b..848a48e2bdf10367ea2f5635dad1d222d8cbf663 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -3783,6 +3783,14 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() { |
SkipList* list = p->skip_list(); |
if (list != NULL) list->Clear(); |
} |
+ |
+ if (p->IsEvacuationCandidate() && |
+ p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) { |
+ // Case where we've aborted compacting a page. Clear the flag here to |
+ // avoid release the page later on. |
+ p->ClearEvacuationCandidate(); |
+ } |
+ |
if (p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) { |
if (FLAG_gc_verbose) { |
PrintF("Sweeping 0x%" V8PRIxPTR " during evacuation.\n", |
@@ -3813,12 +3821,6 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() { |
break; |
} |
} |
- if (p->IsEvacuationCandidate() && |
- p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) { |
- // Case where we've aborted compacting a page. Clear the flag here to |
- // avoid release the page later on. |
- p->ClearEvacuationCandidate(); |
- } |
} |
} |