RFR (M): JDK-8004967 - Default method cause java.lang.VerifyError: Illegal use of nonvirtual function call
Remi Forax
forax at univ-mlv.fr
Wed Jan 16 11:02:00 PST 2013
On 01/16/2013 07:35 PM, Bharadwaj Yadavalli wrote:
> 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
>
What if I generate a bytecode with an abstract public method marked with
synthetic and bridge ?
I think you should check that the method is not abstract.
Rémi
More information about the hotspot-runtime-dev
mailing list