RFR(S) - JDK-8013875: Incorrect vtable index being set during methodHandle creation for static methods

Christian Thalinger christian.thalinger at oracle.com
Tue May 7 14:53:52 PDT 2013


On May 6, 2013, at 3:08 PM, Bharadwaj Yadavalli <bharadwaj.yadavalli at oracle.com> wrote:

> 
> Thanks for the quick review, John.
> 
> On 5/6/2013 5:49 PM, John Rose wrote:
>> Because a 'vmindex' of -1 is a sentinel value, use a manifest constant known to be different from 'nonvirtual_vtable_index'.
>>   - int vmindex = -1;
>>   + int vmindex = Method::invalid_vtable_index;
>> 
>> (It was -1 before simply as a garbage value likely to raise an assertion if it leaked through.)
> 
> OK. Changed. Updated webrev.

Don't we have a helper function to get that value?

+     int ref_kind = ((java_lang_invoke_MemberName::flags(mname()) >>
+                      REFERENCE_KIND_SHIFT) & REFERENCE_KIND_MASK);

-- Chris

> 
>> Note:  We will need to clean this up after CallInfo is cleaned up to handle the new linkage results.  Does the CallInfo cleanup have a bug ID yet?
> 
> I have not yet filed a tracker for CallInfo cleanup.
> 
>> If not I will file a bug for it.
> 
> Please do so. I think you would be able to provide a better description of the task at hand along with the necessary context.
> 
> Thanks,
> 
> Bharadwaj
> 
> JBS: https://jbs.oracle.com/bugs/browse/JDK-8013875
> Webrev: http://cr.openjdk.java.net/~bharadwaj/8013875/webrev/
> 



More information about the hotspot-runtime-dev mailing list