[lworld] RFR: 8373787: [lworld] InstanceKlass::size mixes bytes and words

Stefan Karlsson stefank at openjdk.org
Tue Dec 16 14:29:37 UTC 2025


On Tue, 16 Dec 2025 12:52:18 GMT, Paul Hübner <phubner at openjdk.org> wrote:

>> src/hotspot/share/oops/flatArrayKlass.hpp line 95:
>> 
>>> 93: 
>>> 94:   // sizing
>>> 95:   static int header_size()  { return sizeof(FlatArrayKlass) / wordSize; }
>> 
>> Curiously enough we actually got this right for `RefArrayKlass::header_size()` and I'm guessing the following assertion didn't actually do anything meaningful:
>> 
>> assert(RefArrayKlass::header_size() <= InstanceKlass::header_size(),
>>          "array klasses must be same size as InstanceKlass");
>
> Maybe it could even make sense to tighten the `<=` into a `=`, going by the error message. Thoughts?

I think the reason why the check is there is so that vtables start at the same offset in all Klasses. So, it really just wants to make sure that the array klasses are not so big that they start putting fields where the vtable is supposed to start. I think the comment can be tweaked a little bit here.

-------------

PR Review Comment: https://git.openjdk.org/valhalla/pull/1804#discussion_r2623510191


More information about the valhalla-dev mailing list