Fix slot buffers of abandoned evacuation candidates.
R=vegorov@chromium.org BUG=v8:1734 TEST=cctest/test-mark-compact/NoPromotion Review URL: http://codereview.chromium.org/8051014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
27e1a8d414
commit
a79d439586
@ -2690,8 +2690,10 @@ void MarkCompactCollector::EvacuatePages() {
|
||||
// Without room for expansion evacuation is not guaranteed to succeed.
|
||||
// Pessimistically abandon unevacuated pages.
|
||||
for (int j = i; j < npages; j++) {
|
||||
evacuation_candidates_[j]->ClearEvacuationCandidate();
|
||||
evacuation_candidates_[j]->SetFlag(Page::RESCAN_ON_EVACUATION);
|
||||
Page* page = evacuation_candidates_[j];
|
||||
slots_buffer_allocator_.DeallocateChain(page->slots_buffer_address());
|
||||
page->ClearEvacuationCandidate();
|
||||
page->SetFlag(Page::RESCAN_ON_EVACUATION);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user