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

Lois Foltan lois.foltan at oracle.com
Tue Nov 26 06:30:46 PST 2013


Thanks Coleen for the review!
Lois

On 11/25/2013 10:09 PM, Coleen Phillimore wrote:
> Lois,
>
> This change looks good.   The change might be (S) but the effort 
> understanding the specification for this case was (L) in my opinion.
>
> Coleen
>
> On 11/25/2013 1:37 PM, Lois Foltan wrote:
>>
>> Hi Karen,
>>
>> Thank you!  See below my answer concerning running tests with 
>> -noverify.  I have incorporated your suggestion below.
>> Please review the following updated webrev:
>>
>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8026065_1/
>>
>> JDK java.util & lang, along with default method tests have passed 
>> against this webrev.  Currently running JCK *.
>>
>> Lois
>>
>> On 11/24/2013 5:10 PM, Karen Kinnear wrote:
>>> Lois,
>>>
>>> This looks great! And thank you.
>>>
>>> I assume you ran some set of test examples with and without the 
>>> verifier?
>>
>> Since JDK java.util & lang proved to flush out the most issues with 
>> this change I chose to run those with and without verification as 
>> well as the default method tests.
>>
>>>
>>> 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/20131126/482a3ce8/attachment.html 


More information about the hotspot-runtime-dev mailing list