| Index: runtime/vm/block_scheduler.cc
|
| diff --git a/runtime/vm/block_scheduler.cc b/runtime/vm/block_scheduler.cc
|
| index a84a5d96300b070fb4959b719a97e53a7455fe1e..1288d0b19471820680cc9d5d986f356f6c35b6ea 100644
|
| --- a/runtime/vm/block_scheduler.cc
|
| +++ b/runtime/vm/block_scheduler.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "vm/allocation.h"
|
| #include "vm/code_patcher.h"
|
| +#include "vm/compiler.h"
|
| #include "vm/flow_graph.h"
|
|
|
| namespace dart {
|
| @@ -60,6 +61,11 @@ void BlockScheduler::AssignEdgeWeights() const {
|
|
|
| const Array& ic_data_array = Array::Handle(flow_graph()->zone(),
|
| flow_graph()->parsed_function().function().ic_data_array());
|
| + if (Compiler::IsBackgroundCompilation() && ic_data_array.IsNull()) {
|
| + // Deferred loading cleared ic_data_array.
|
| + Compiler::AbortBackgroundCompilation(Thread::kNoDeoptId);
|
| + }
|
| + ASSERT(!ic_data_array.IsNull());
|
| Array& edge_counters = Array::Handle();
|
| edge_counters ^= ic_data_array.At(0);
|
|
|
|
|