summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/builder.cc
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-03-26 10:05:54 +0000
committerNicolas Geoffray <ngeoffray@google.com>2015-03-26 10:05:54 +0000
commit790412959a6413a585f45fc5f77fe7106311a00c (patch)
tree94d7d6016c5a58d6c5f31d8350330c8025baa014 /compiler/optimizing/builder.cc
parent9ed05c4cf76aaeee48a1eb5bbae659b0acbabe67 (diff)
downloadandroid_art-790412959a6413a585f45fc5f77fe7106311a00c.tar.gz
android_art-790412959a6413a585f45fc5f77fe7106311a00c.tar.bz2
android_art-790412959a6413a585f45fc5f77fe7106311a00c.zip
Use the original invoke type when inlining.
When resolving a method through the compiler driver, the code makes sure the call in the DEX bytecode matches the kind of method found, to check for IncompatibleClassChangeError. Because when we sharpen an invoke virtual, we transform the invoke kind to direct, we must not use the new kind, but the one in DEX. Change-Id: Iaf77b27b529c659ea48ffb19f46427552c9e3654
Diffstat (limited to 'compiler/optimizing/builder.cc')
-rw-r--r--compiler/optimizing/builder.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index 8786ed419c..f81935a7c6 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -620,7 +620,7 @@ bool HGraphBuilder::BuildInvoke(const Instruction& instruction,
DCHECK(!is_recursive || (target_method.dex_file == dex_compilation_unit_->GetDexFile()));
invoke = new (arena_) HInvokeStaticOrDirect(
arena_, number_of_arguments, return_type, dex_pc, target_method.dex_method_index,
- is_recursive, optimized_invoke_type);
+ is_recursive, invoke_type, optimized_invoke_type);
}
size_t start_index = 0;