Do not fill DexCache methods in resolution trampoline.
Storing the methods in DexCache was done for performance
reasons back when compiled code used the DexCache for method
calls. HInvokeStaticOrDirect does not use the DexCache since
replacing the kDexCachePcRelative with kBssEntry in
https://android-review.googlesource.com/399312 ,
so we do not need to populate the DexCache for performance
reasons.
The storing of the ArtMethod* for invoke-super was also
erroneous as it may have stored a method in a slot that
references a class not present in the associated ClassTable.
This led to crashes when subsequently trying to resolve the
method and check for ICCE from JIT.
Therefore we remove the code that stores the method, both
for the crashing invoke-super case and the obsolete
invoke-static case (introduced due to bug 19175856).
Test: 164-resolution-trampoline-dex-cache
Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 64759619
Change-Id: Ieee68d3c6a731e61bc8115085c1e027af199fc59
10 files changed