Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1557)

Unified Diff: runtime/vm/jit_optimizer.cc

Issue 2859673002: Pass type argument vector to generic functions (if --reify-generic-functions is (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/jit_optimizer.cc
diff --git a/runtime/vm/jit_optimizer.cc b/runtime/vm/jit_optimizer.cc
index fb6ee1d43be1d01be334cbb573a14b2f57af868e..9063e4f618997288f06b2763c9ab7e6874c659e6 100644
--- a/runtime/vm/jit_optimizer.cc
+++ b/runtime/vm/jit_optimizer.cc
@@ -137,9 +137,11 @@ bool JitOptimizer::TryCreateICData(InstanceCallInstr* call) {
// finalized yet.
return false;
}
- const Array& args_desc_array =
- Array::Handle(Z, ArgumentsDescriptor::New(call->ArgumentCount(),
- call->argument_names()));
+ const Array& args_desc_array = Array::Handle(
+ Z, ArgumentsDescriptor::New(
+ call->type_args_len(),
+ call->ArgumentCount() - (call->type_args_len() > 0 ? 1 : 0),
+ call->argument_names()));
ArgumentsDescriptor args_desc(args_desc_array);
bool allow_add = false;
const Function& function = Function::Handle(
@@ -171,9 +173,11 @@ bool JitOptimizer::TryCreateICData(InstanceCallInstr* call) {
const Class& owner_class = Class::Handle(Z, function().Owner());
if (!owner_class.is_abstract() && !CHA::HasSubclasses(owner_class) &&
!CHA::IsImplemented(owner_class)) {
- const Array& args_desc_array =
- Array::Handle(Z, ArgumentsDescriptor::New(call->ArgumentCount(),
- call->argument_names()));
+ const int kTypeArgsLen = 0;
+ ASSERT(call->type_args_len() == kTypeArgsLen);
+ const Array& args_desc_array = Array::Handle(
+ Z, ArgumentsDescriptor::New(kTypeArgsLen, call->ArgumentCount(),
+ call->argument_names()));
ArgumentsDescriptor args_desc(args_desc_array);
bool allow_add = false;
const Function& function = Function::Handle(

Powered by Google App Engine
This is Rietveld 408576698