Chromium Code Reviews| Index: src/deoptimizer.cc |
| diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
| index a8de06ee5850f82949b63ba1146865aba7cd3536..147e52793907e0921f820ece43682a7cf9e60df4 100644 |
| --- a/src/deoptimizer.cc |
| +++ b/src/deoptimizer.cc |
| @@ -2806,7 +2806,14 @@ void Deoptimizer::EnsureCodeForDeoptimizationEntry(Isolate* isolate, |
| MemoryChunk* chunk = data->deopt_entry_code_[type]; |
| CHECK(static_cast<int>(Deoptimizer::GetMaxDeoptTableSize()) >= |
| desc.instr_size); |
| - chunk->CommitArea(desc.instr_size); |
| + if (!chunk->CommitArea(desc.instr_size)) { |
| + isolate->heap()->CollectAllAvailableGarbage( |
| + "Allocation for deoptimizer failed"); |
| + if (!chunk->CommitArea(desc.instr_size)) { |
| + V8::FatalProcessOutOfMemory( |
|
Michael Starzinger
2015/04/16 15:32:23
I like that we are properly reporting the allocati
|
| + "Deoptimizer::EnsureCodeForDeoptimizationEntry"); |
| + } |
| + } |
| CopyBytes(chunk->area_start(), desc.buffer, |
| static_cast<size_t>(desc.instr_size)); |
| CpuFeatures::FlushICache(chunk->area_start(), desc.instr_size); |