OSDN Git Service

Use the original invoke type when inlining.
authorNicolas Geoffray <ngeoffray@google.com>
Thu, 26 Mar 2015 10:05:54 +0000 (10:05 +0000)
committerNicolas Geoffray <ngeoffray@google.com>
Thu, 26 Mar 2015 10:05:54 +0000 (10:05 +0000)
commit790412959a6413a585f45fc5f77fe7106311a00c
tree94d7d6016c5a58d6c5f31d8350330c8025baa014
parent9ed05c4cf76aaeee48a1eb5bbae659b0acbabe67
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
compiler/optimizing/builder.cc
compiler/optimizing/inliner.cc
compiler/optimizing/nodes.h
test/464-checker-inline-sharpen-calls/expected.txt [new file with mode: 0644]
test/464-checker-inline-sharpen-calls/info.txt [new file with mode: 0644]
test/464-checker-inline-sharpen-calls/src/Main.java [new file with mode: 0644]