From a79d4395869bdf13226d1a80c9f8879f6a5554de Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Tue, 27 Sep 2011 13:35:04 +0000 Subject: [PATCH] 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 --- src/mark-compact.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mark-compact.cc b/src/mark-compact.cc index 956d0c953..948a6be79 100644 --- a/src/mark-compact.cc +++ b/src/mark-compact.cc @@ -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; } -- 2.34.1