| Index: src/spaces.cc
|
| diff --git a/src/spaces.cc b/src/spaces.cc
|
| index 62323bafe104a1bd1f5fd68d548a784fa7e6c641..8e7a947f171e86b7693bc682f71ed702e9644980 100644
|
| --- a/src/spaces.cc
|
| +++ b/src/spaces.cc
|
| @@ -2020,8 +2020,13 @@ void PagedSpace::EvictEvacuationCandidatesFromFreeLists() {
|
| if (allocation_info_.top >= allocation_info_.limit) return;
|
|
|
| if (Page::FromAddress(allocation_info_.top)->IsEvacuationCandidate()) {
|
| - allocation_info_.top = NULL;
|
| - allocation_info_.limit = NULL;
|
| + // Create filler object to keep page iterable if it was iterable.
|
| + int remaining =
|
| + static_cast<int>(allocation_info_.limit - allocation_info_.top);
|
| + heap()->CreateFillerObjectAt(allocation_info_.top, remaining);
|
| +
|
| + allocation_info_.top = NULL;
|
| + allocation_info_.limit = NULL;
|
| }
|
| }
|
|
|
|
|