Chromium Code Reviews| Index: runtime/vm/intermediate_language_dbc.cc |
| diff --git a/runtime/vm/intermediate_language_dbc.cc b/runtime/vm/intermediate_language_dbc.cc |
| index 3838de2cbf23169b146711bf97fbfdd8a6d999b3..b82a0b61d43354e637bed25c9b1c4ff252f1cff3 100644 |
| --- a/runtime/vm/intermediate_language_dbc.cc |
| +++ b/runtime/vm/intermediate_language_dbc.cc |
| @@ -240,7 +240,8 @@ EMIT_NATIVE_CODE(PolymorphicInstanceCall, |
| Location::RegisterLocation(0), |
| LocationSummary::kCall) { |
| const Array& arguments_descriptor = Array::Handle(ArgumentsDescriptor::New( |
| - instance_call()->ArgumentCount(), instance_call()->argument_names())); |
| + instance_call()->type_args_len(), instance_call()->ArgumentCount(), |
|
zra
2017/05/03 15:03:24
Does this one need to be adjusted?
regis
2017/05/09 18:31:23
Good catch! I missed this one. One more reason to
|
| + instance_call()->argument_names())); |
| const intptr_t argdesc_kidx = __ AddConstant(arguments_descriptor); |
| const CallTargets& ic_data = targets(); |
| @@ -451,9 +452,11 @@ EMIT_NATIVE_CODE(ClosureCall, |
| __ Push(locs()->in(0).reg()); |
| } |
| - intptr_t argument_count = ArgumentCount(); |
| - const Array& arguments_descriptor = Array::ZoneHandle( |
| - ArgumentsDescriptor::New(argument_count, argument_names())); |
| + const intptr_t ta_len = type_args_len(); |
| + const intptr_t argument_count = ArgumentCount(); // Includes type args. |
| + const Array& arguments_descriptor = |
| + Array::ZoneHandle(ArgumentsDescriptor::New( |
| + ta_len, argument_count - (ta_len > 0 ? 1 : 0), argument_names())); |
| const intptr_t argdesc_kidx = |
| compiler->assembler()->AddConstant(arguments_descriptor); |
| __ StaticCall(argument_count, argdesc_kidx); |
| @@ -919,9 +922,10 @@ EMIT_NATIVE_CODE(StringInterpolate, |
| if (compiler->is_optimizing()) { |
| __ Push(locs()->in(0).reg()); |
| } |
| + const intptr_t kTypeArgsLen = 0; |
| const intptr_t kArgumentCount = 1; |
| - const Array& arguments_descriptor = Array::Handle( |
| - ArgumentsDescriptor::New(kArgumentCount, Object::null_array())); |
| + const Array& arguments_descriptor = Array::Handle(ArgumentsDescriptor::New( |
| + kTypeArgsLen, kArgumentCount, Object::null_array())); |
| __ PushConstant(CallFunction()); |
| const intptr_t argdesc_kidx = __ AddConstant(arguments_descriptor); |
| __ StaticCall(kArgumentCount, argdesc_kidx); |