Chromium Code Reviews| Index: runtime/vm/intermediate_language.h |
| diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h |
| index ed66e9519a8cb93bce3806c4b4b96033296dce29..964c556b76677cde0df11c7c2cb2279295cb3405 100644 |
| --- a/runtime/vm/intermediate_language.h |
| +++ b/runtime/vm/intermediate_language.h |
| @@ -2854,15 +2854,17 @@ class ClosureCallInstr : public TemplateDartCall<1> { |
| class InstanceCallInstr : public TemplateDartCall<0> { |
| public: |
| - InstanceCallInstr(TokenPosition token_pos, |
| - const String& function_name, |
| - Token::Kind token_kind, |
| - ZoneGrowableArray<PushArgumentInstr*>* arguments, |
| - intptr_t type_args_len, |
| - const Array& argument_names, |
| - intptr_t checked_argument_count, |
| - const ZoneGrowableArray<const ICData*>& ic_data_array, |
| - intptr_t deopt_id) |
| + InstanceCallInstr( |
| + TokenPosition token_pos, |
| + const String& function_name, |
| + Token::Kind token_kind, |
| + ZoneGrowableArray<PushArgumentInstr*>* arguments, |
| + intptr_t type_args_len, |
| + const Array& argument_names, |
| + intptr_t checked_argument_count, |
| + const ZoneGrowableArray<const ICData*>& ic_data_array, |
| + intptr_t deopt_id, |
| + const Function& interface_target = Function::null_function()) |
| : TemplateDartCall(deopt_id, |
| type_args_len, |
| argument_names, |
| @@ -2872,6 +2874,7 @@ class InstanceCallInstr : public TemplateDartCall<0> { |
| function_name_(function_name), |
| token_kind_(token_kind), |
| checked_argument_count_(checked_argument_count), |
| + interface_target_(interface_target), |
| has_unique_selector_(false) { |
| ic_data_ = GetICData(ic_data_array); |
| ASSERT(function_name.IsNotTemporaryScopedHandle()); |
|
rmacnak
2017/08/18 00:52:43
ASSERT(interface_target_.IsNotTemporaryScopedHandl
alexmarkov
2017/08/18 17:15:57
Done.
|
| @@ -2897,6 +2900,7 @@ class InstanceCallInstr : public TemplateDartCall<0> { |
| const String& function_name() const { return function_name_; } |
| Token::Kind token_kind() const { return token_kind_; } |
| intptr_t checked_argument_count() const { return checked_argument_count_; } |
| + const Function& interface_target() const { return interface_target_; } |
| bool has_unique_selector() const { return has_unique_selector_; } |
| void set_has_unique_selector(bool b) { has_unique_selector_ = b; } |
| @@ -2932,6 +2936,7 @@ class InstanceCallInstr : public TemplateDartCall<0> { |
| const String& function_name_; |
| const Token::Kind token_kind_; // Binary op, unary op, kGET or kILLEGAL. |
| const intptr_t checked_argument_count_; |
| + const Function& interface_target_; |
| bool has_unique_selector_; |
| DISALLOW_COPY_AND_ASSIGN(InstanceCallInstr); |