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
parent 27e1a8d4
...@@ -2690,8 +2690,10 @@ void MarkCompactCollector::EvacuatePages() { ...@@ -2690,8 +2690,10 @@ void MarkCompactCollector::EvacuatePages() {
// Without room for expansion evacuation is not guaranteed to succeed. // Without room for expansion evacuation is not guaranteed to succeed.
// Pessimistically abandon unevacuated pages. // Pessimistically abandon unevacuated pages.
for (int j = i; j < npages; j++) { for (int j = i; j < npages; j++) {
evacuation_candidates_[j]->ClearEvacuationCandidate(); Page* page = evacuation_candidates_[j];
evacuation_candidates_[j]->SetFlag(Page::RESCAN_ON_EVACUATION); slots_buffer_allocator_.DeallocateChain(page->slots_buffer_address());
page->ClearEvacuationCandidate();
page->SetFlag(Page::RESCAN_ON_EVACUATION);
} }
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment