RFR (S) JDK-8026065: InterfaceMethodref for invokespecial must name a direct superinterface

Karen Kinnear karen.kinnear at oracle.com
Sun Nov 24 14:10:26 PST 2013


Lois,

This looks great! And thank you.

I assume you ran some set of test examples with and without the verifier?

One question in verifier.cpp:
  You only need the is_same_or_direct check if cp->tag_at(index).value() == JVM_CONSTANT_InterfaceMethodef right?
If so, would it make sense to check that before doing the extra checking rather than before throwing the exception?
This would maybe be a bit quicker and less risk of breaking existing code.
The code logic here gets awkwardly nested, so I understand if you tried that and this was cleaner.

thanks,
Karen

On Nov 24, 2013, at 4:34 PM, Lois Foltan wrote:

> Please review the following fix:
> 
> Webrev:
>     http://cr.openjdk.java.net/~lfoltan/bug_jdk8026065/
> 
> Bug: InterfaceMethodref for invokespecial must name a direct superinterface
>     https://bugs.openjdk.java.net/browse/JDK-8026065
> 
> Summary of fix: 
>    Add verification to check that InterfaceMethodref for invokespecial names a method in a 
>    direct superinterface of the current class or interface.  See (JVMS draft 0.7.0) 4.9.2 Structural Constraints, 
>    "Each invokespecial instruction must name an instance initialization method (2.9), or 
>      must reference a method in the current class or interface, a method in a superclass of the 
>      current class or interface, or a method in a direct superinterface of the current class or interface." 
> Tests: 
>     jtreg hotspot/test/*, JDK java.lang & java.util, vm.quick.testlist, JCK 8 *, JDK1.4 JCKs, defmeth tests 
> 
> Thank you, Lois

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20131124/54ae5f0a/attachment.html 


More information about the hotspot-runtime-dev mailing list