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

Bharadwaj Yadavalli bharadwaj.yadavalli at oracle.com
Thu Jan 17 00:47:14 UTC 2013


On 1/16/2013 3:50 PM, Dean Long wrote:
> Don't you need to change the split verifier as well?
>

Looks like the a corresponding change is already in 
http://hg.openjdk.java.net/jdk8/tl/hotspot/diff/4735d2c84362/src/share/vm/classfile/verifier.cpp. 
It bypasses verification of an overpass method (determined by the method 
type being ConstMethod::OVERPASS).

It would be consistent to use the same set of verification tests in the 
old and new verifiers. But, I do not see a JVM_* query that would give 
me the method type to use in verification of methods in check_code.c. 
Does anyone know of a way to get this info via JVM_* query? For now, it 
appears to me that checking access flags as I did in the webrev would be 
sufficient in the old verifier code.

Bharadwaj




More information about the core-libs-dev mailing list