Chromium Code Reviews| Index: runtime/vm/flow_graph.cc |
| diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc |
| index bac0c4b7af4972c6766d47a05f55f97f5414da27..0c8dbc0a996a6087c29cc3ada5a5773a7450e430 100644 |
| --- a/runtime/vm/flow_graph.cc |
| +++ b/runtime/vm/flow_graph.cc |
| @@ -444,13 +444,14 @@ bool FlowGraph::InstanceCallNeedsClassCheck(InstanceCallInstr* call, |
| ? String::Handle(zone(), Field::NameFromGetter(call->function_name())) |
| : call->function_name(); |
| const Class& cls = Class::Handle(zone(), function().Owner()); |
| - if (!thread()->cha()->HasOverride(cls, name)) { |
| + intptr_t subclass_count = 0; |
| + if (!thread()->cha()->HasOverride(cls, name, &subclass_count)) { |
| if (FLAG_trace_cha) { |
| THR_Print(" **(CHA) Instance call needs no check, " |
| "no overrides of '%s' '%s'\n", |
| name.ToCString(), cls.ToCString()); |
| } |
| - thread()->cha()->AddToLeafClasses(cls); |
| + thread()->cha()->AddToGuardedClasses(cls, subclass_count); |
|
Florian Schneider
2016/05/20 11:23:28
if (FLAG_use_cha_deopt) {
...
}
Vyacheslav Egorov (Google)
2016/05/20 11:31:21
already checked above.
|
| return false; |
| } |
| } |