RFR (L) : 8014013 : CallInfo structure no longer accurately reports the result of a LinkResolver operation
Karen Kinnear
karen.kinnear at oracle.com
Mon Aug 26 13:19:25 PDT 2013
An overpass method is a method created to bridge to a default method in an interface today.
An overpass method does NOT require a vtable entry to be created because we only create
them with names matching current miranda methods, so the overpass method will re-use
the miranda method's vtable entry.
I should have been clearer - an overpass method does not require a NEW vtable entry,
it does use a vtable entry.
hth,
Karen
On Aug 26, 2013, at 4:08 PM, David Chase wrote:
> A question on this point, where we may be getting tangled up by multiple negation:
>
> you say "you can have an overpass method, which does not require a vtable entry,"
> so is an overpass method "final", contrary to the current code?
>
> David
>
> On 2013-08-26, at 1:22 PM, Karen Kinnear <karen.kinnear at oracle.com> wrote:
>
>> 2. In method.cpp in is_final_method
>> Could you please delete the comment lies 513-514
>> "Should return true for private methods also, since there is no way to override them?"
>>
>> Yes, you do not override private methods. However, this call is used to determine if you
>> need a vtable entry. Private methods always get a vtable entry to handle backward compatibility
>> with classes - i.e. you can have the same name of a private method local to your class and also
>> inherit a method of from your superclass, which will get inherited around the private method, by
>> your child.
>>
>> And yes, you can have an overpass method, which does not require a vtable entry,
>> so the "can this happen?" answer is yes - so you can remove the question.
>
More information about the hotspot-compiler-dev
mailing list