Chromium Code Reviews| Index: runtime/vm/flow_graph_optimizer.cc |
| =================================================================== |
| --- runtime/vm/flow_graph_optimizer.cc (revision 14443) |
| +++ runtime/vm/flow_graph_optimizer.cc (working copy) |
| @@ -273,7 +273,8 @@ |
| static bool ICDataHasReceiverClassId(const ICData& ic_data, intptr_t class_id) { |
| ASSERT(ic_data.num_args_tested() > 0); |
| - for (intptr_t i = 0; i < ic_data.NumberOfChecks(); i++) { |
| + const intptr_t len = ic_data.NumberOfChecks(); |
| + for (intptr_t i = 0; i < len; i++) { |
| const intptr_t test_class_id = ic_data.GetReceiverClassIdAt(i); |
| if (test_class_id == class_id) { |
| return true; |
| @@ -291,7 +292,8 @@ |
| if (ic_data.num_args_tested() != 2) return false; |
| Function& target = Function::Handle(); |
| - for (intptr_t i = 0; i < ic_data.NumberOfChecks(); i++) { |
| + const intptr_t len = ic_data.NumberOfChecks(); |
| + for (intptr_t i = 0; i < len; i++) { |
| GrowableArray<intptr_t> class_ids; |
| ic_data.GetCheckAt(i, &class_ids, &target); |
| ASSERT(class_ids.length() == 2); |
| @@ -323,7 +325,8 @@ |
| const GrowableArray<intptr_t>& argument_class_ids) { |
| if (ic_data.num_args_tested() != 2) return false; |
| Function& target = Function::Handle(); |
| - for (intptr_t i = 0; i < ic_data.NumberOfChecks(); i++) { |
| + const intptr_t len = ic_data.NumberOfChecks(); |
| + for (intptr_t i = 0; i < len; i++) { |
| GrowableArray<intptr_t> class_ids; |
| ic_data.GetCheckAt(i, &class_ids, &target); |
| ASSERT(class_ids.length() == 2); |
| @@ -447,7 +450,8 @@ |
| if (ic_data.NumberOfChecks() == 0) return false; |
| GrowableArray<intptr_t> class_ids; |
| Function& target = Function::Handle(); |
| - for (intptr_t i = 0; i < ic_data.NumberOfChecks(); i++) { |
| + const intptr_t len = ic_data.NumberOfChecks(); |
| + for (intptr_t i = 0; i < len; i++) { |
| ic_data.GetCheckAt(i, &class_ids, &target); |
| if (class_ids[arg_n] != kSmiCid) return false; |
| } |
| @@ -1172,6 +1176,7 @@ |
| if ((unary_checks.NumberOfChecks() > FLAG_max_polymorphic_checks) && |
| InstanceCallNeedsClassCheck(instr)) { |
| // Too many checks, leave it megamorphic. |
| + instr->set_ic_data(&unary_checks); |
|
siva
2012/11/02 01:09:18
The comment says 'too many checks, leave it megamo
srdjan
2012/11/02 15:32:45
Changed the comment:
// Too many checks it wil
|
| return; |
| } |