| Index: runtime/vm/flow_graph_compiler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_ia32.cc (revision 35593)
|
| +++ runtime/vm/flow_graph_compiler_ia32.cc (working copy)
|
| @@ -1240,6 +1240,7 @@
|
| intptr_t deopt_id,
|
| intptr_t token_pos,
|
| LocationSummary* locs) {
|
| + ASSERT(Array::Handle(ic_data.arguments_descriptor()).Length() > 0);
|
| // Each ICData propagated from unoptimized to optimized code contains the
|
| // function that corresponds to the Dart function of that IC call. Due
|
| // to inlining in optimized code, that function may not correspond to the
|
| @@ -1263,6 +1264,7 @@
|
| intptr_t deopt_id,
|
| intptr_t token_pos,
|
| LocationSummary* locs) {
|
| + ASSERT(Array::Handle(ic_data.arguments_descriptor()).Length() > 0);
|
| __ LoadObject(ECX, ic_data);
|
| GenerateDartCall(deopt_id,
|
| token_pos,
|
| @@ -1283,7 +1285,7 @@
|
| const String& name = String::Handle(ic_data.target_name());
|
| const Array& arguments_descriptor =
|
| Array::ZoneHandle(ic_data.arguments_descriptor());
|
| - ASSERT(!arguments_descriptor.IsNull());
|
| + ASSERT(!arguments_descriptor.IsNull() && (arguments_descriptor.Length() > 0));
|
| const MegamorphicCache& cache =
|
| MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor));
|
| Label not_smi, load_cache;
|
|
|