RFR(XS) : JDK-8009552 - test/vm/verifier/TestStaticIF.java failing with hs25.0-b20 (original) (raw)

David Holmes david.holmes at oracle.com
Fri Mar 8 06:04:20 UTC 2013


Hi Bharadwaj,

Given 8009697 [1] this work would only seem to be one part of what is needed to use invokestatic with an interface method.

David

[1] The JVMS 4.9.2 states:

"Each invokespecial instruction must name an instance initialization method (ยง2.9), a method in the current class, or a method in a superclass of the current class. "

Hence no calls to an inherited interface presently allowed.

On 8/03/2013 7:14 AM, Bharadwaj Yadavalli wrote:

I would like to request for a review of changes whose details are as follows:

Bug fixed: https://jbs.oracle.com/bugs/browse/JDK-8009552 Webrev: http://cr.openjdk.java.net/~bharadwaj/8009552/webrev/ Summary of changes : To support JDK 8 features, javac now generates invokespecial instructions to reference interface methods. The proposed change modifies bytecode verification (in old verifier) of Java 8 classfiles to allow invokespecial to refer to methods in CONSTANTInterfaceMethodref as well as in CONSTANTMethodref. Consequently, class hierarchy walk to validate the operand of invokespecial is restricted to classes with version less than 52. Note that this change is to the old verifier. The new verifier (split verifier) already handles this. Thanks, Bharadwaj



More information about the core-libs-dev mailing list