Index: src/spaces.cc |
diff --git a/src/spaces.cc b/src/spaces.cc |
index b52c8214b3cd73112dbf3e9123b25dd3bdf132ba..ba429cafeac02c4312eb4692eec84423c524d706 100644 |
--- a/src/spaces.cc |
+++ b/src/spaces.cc |
@@ -1930,8 +1930,10 @@ void PagedSpace::PrepareForMarkCompact() { |
Page* last = last_unswept_page_->next_page(); |
Page* p = first_unswept_page_; |
do { |
- if (ShouldBeSweptLazily(p)) { |
- ASSERT(!p->WasSwept()); |
+ // Do not use ShouldBeSweptLazily predicate here. |
+ // New evacuation candidates were selected but they still have |
+ // to be swept before collection starts. |
+ if (!p->WasSwept()) { |
Vyacheslav Egorov (Chromium)
2011/09/22 15:30:11
The same regression test revealed a bug here.
We
|
Bitmap::Clear(p); |
if (FLAG_gc_verbose) { |
PrintF("Sweeping 0x%" V8PRIxPTR " lazily abandoned.\n", |