commit | 93dde1f977f8e4121ad65dc75d029f46de324454 | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Mon Dec 02 15:24:00 2019 +0100 |
committer | Christoffer Quist Adamsen <christofferqa@google.com> | Mon Dec 02 19:01:57 2019 +0000 |
tree | 068ab8fdb9c7887ce195524daf9ea975f09879bd | |
parent | 5f90ec4faa329004b3953b2d32224280220d2910 [diff] |
Allow indirect virtual method calls on parent classes in class inliner Change-Id: I2e9349301c951958c40e4e57f36b0309aaf3bce4
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java index 98f5a47..2f754d1 100644 --- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java +++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -838,7 +838,8 @@ } private InliningInfo isEligibleIndirectVirtualMethodCall(DexMethod callee) { - DexEncodedMethod singleTarget = eligibleClassDefinition.lookupVirtualMethod(callee); + DexEncodedMethod singleTarget = + appView.appInfo().resolveMethod(eligibleClassDefinition, callee).getSingleTarget(); if (isEligibleSingleTarget(singleTarget)) { return isEligibleVirtualMethodCall( null, callee, singleTarget, eligibility -> eligibility.returnsReceiver.isFalse());