diff options
Diffstat (limited to 'chromium/v8/src/heap')
-rw-r--r-- | chromium/v8/src/heap/mark-compact.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/chromium/v8/src/heap/mark-compact.cc b/chromium/v8/src/heap/mark-compact.cc index bf2849fb7f7..a23e24d2553 100644 --- a/chromium/v8/src/heap/mark-compact.cc +++ b/chromium/v8/src/heap/mark-compact.cc @@ -3784,6 +3784,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", @@ -3814,12 +3822,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(); - } } } |