| Index: src/heap/spaces.cc
|
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
|
| index 1ab5de737919cbe8d92fd9e0a31985144132aa7c..6896ef2f6095a51e5cdd853a315f298162acc3e1 100644
|
| --- a/src/heap/spaces.cc
|
| +++ b/src/heap/spaces.cc
|
| @@ -2471,7 +2471,8 @@ HeapObject* FreeList::Allocate(int size_in_bytes) {
|
| // Keep the linear allocation area empty if requested to do so, just
|
| // return area back to the free list instead.
|
| owner_->Free(new_node->address() + size_in_bytes, bytes_left);
|
| - DCHECK(owner_->top() == NULL && owner_->limit() == NULL);
|
| + owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
|
| + new_node->address() + size_in_bytes);
|
| } else if (bytes_left > kThreshold &&
|
| owner_->heap()->incremental_marking()->IsMarkingIncomplete() &&
|
| FLAG_incremental_marking) {
|
| @@ -2483,7 +2484,7 @@ HeapObject* FreeList::Allocate(int size_in_bytes) {
|
| new_node_size - size_in_bytes - linear_size);
|
| owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
|
| new_node->address() + size_in_bytes + linear_size);
|
| - } else if (bytes_left > 0) {
|
| + } else if (bytes_left >= 0) {
|
| // Normally we give the rest of the node to the allocator as its new
|
| // linear allocation area.
|
| owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
|
|
|