| Index: src/heap/spaces.cc
|
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
|
| index 9be53e03f284018c8b8cafa6462f82712992fba4..92f3f7fa5efcda31560c3ed0bd115b4530f50528 100644
|
| --- a/src/heap/spaces.cc
|
| +++ b/src/heap/spaces.cc
|
| @@ -193,8 +193,10 @@ Address CodeRange::AllocateRawMemory(const size_t requested_size,
|
| const size_t commit_size,
|
| size_t* allocated) {
|
| DCHECK(commit_size <= requested_size);
|
| - DCHECK(current_allocation_block_index_ < allocation_list_.length());
|
| - if (requested_size > allocation_list_[current_allocation_block_index_].size) {
|
| + DCHECK(allocation_list_.length() == 0 ||
|
| + current_allocation_block_index_ < allocation_list_.length());
|
| + if (allocation_list_.length() == 0 ||
|
| + requested_size > allocation_list_[current_allocation_block_index_].size) {
|
| // Find an allocation block large enough.
|
| if (!GetNextAllocationBlock(requested_size)) return NULL;
|
| }
|
| @@ -218,7 +220,7 @@ Address CodeRange::AllocateRawMemory(const size_t requested_size,
|
| allocation_list_[current_allocation_block_index_].size -= *allocated;
|
| if (*allocated == current.size) {
|
| // This block is used up, get the next one.
|
| - if (!GetNextAllocationBlock(0)) return NULL;
|
| + GetNextAllocationBlock(0);
|
| }
|
| return current.start;
|
| }
|
|
|