RFR (M): JDK-8004967 - Default method cause java.lang.VerifyError: Illegal use of nonvirtual function call

Bharadwaj Yadavalli bharadwaj.yadavalli at oracle.com
Wed Jan 16 18:35:47 UTC 2013


Please review the change at 
http://cr.openjdk.java.net/~bharadwaj/8004967/webrev/

Default interface methods are new in Java 8. VM creates overpass methods 
in the vtable slots of classes to invoke a default method using 
invokespecial.

Consequently, invocation of default interface methods (i.e., overpass 
methods in the VM) via invokespecial is legal and should not be flagged 
as illegal.

In short, this change allows invocation of default methods of Java 8 
using invokespecial.

I ran JCK (vm, lang, api) tests, runThese and vm.quicklist with no new 
failures.

Thanks,

Bharadwaj




More information about the core-libs-dev mailing list