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

Lois Foltan lois.foltan at oracle.com
Mon Nov 25 13:33:26 PST 2013


Hi Karen, Harold,

Thank you for the review!

Lois

On 11/25/2013 3:15 PM, harold seigel wrote:
> Hi Lois,
>
> The changes look good.
>
> Harold
>
> On 11/25/2013 2:53 PM, Karen Kinnear wrote:
>> Lois,
>>
>> Looks much better - many thanks for the modification. Ship it.
>>
>> thanks,
>> Karen
>>
>> On Nov 25, 2013, at 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/20131125/5a95ca35/attachment.html 


More information about the hotspot-runtime-dev mailing list