Don't use ACC_SUPER to select invoke-super
All modern Java compilers should set ACC_SUPER on all classes, but ACC_SUPER is never set on interfaces. Java 8 may contain method implementations in interfaces through default or static methods. Always use invoke-super to call methods on super classes instead of gating on ACC_SUPER. Fixes dex2oat verification issue with call to a super method in an interface default method: Soft verification failures in java.time.chrono.ChronoLocalDateTime java.time.chrono.ChronoLocalDateTime.minus(long, java.time.temporal.TemporalUnit) java.time.chrono.ChronoLocalDateTime java.time.chrono.ChronoLocalDateTime.minus(long, java.time.temporal.TemporalUnit): [0x4] invoke type (METHOD_DIRECT) does not match method type of java.time.temporal.Temporal java.time.temporal.Temporal.mi Test: m -j checkbuild, boots Change-Id: Id327bbcc5f33b1315f53f57673da1d5b49a4de58
Loading
Please sign in to comment