diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-26 10:05:54 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-26 10:05:54 +0000 |
commit | 790412959a6413a585f45fc5f77fe7106311a00c (patch) | |
tree | 94d7d6016c5a58d6c5f31d8350330c8025baa014 /compiler/optimizing/builder.cc | |
parent | 9ed05c4cf76aaeee48a1eb5bbae659b0acbabe67 (diff) | |
download | android_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.cc | 2 |
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; |