[lworld] RFR: 8370450: [lworld] Alternate implementation of the substitutability test method [v2]

Coleen Phillimore coleenp at openjdk.org
Fri Oct 24 17:47:30 UTC 2025


On Thu, 23 Oct 2025 20:52:24 GMT, Frederic Parain <fparain at openjdk.org> wrote:

>> src/hotspot/share/classfile/fieldLayoutBuilder.cpp line 1361:
>> 
>>> 1359:   _nonoop_acmp_map = new GrowableArray<Pair<int,int>>();
>>> 1360:   _oop_acmp_map = new GrowableArray<int>();
>>> 1361:   if (_is_empty_inline_class) return;
>> 
>> Why not return first before allocating these GrowableArray in resource area?
>
> It streamlines the code in InstanceKlass::fill_instance_klass() by not having to handle the null map case.

Okay. I can't decide if you need a comment to prevent someone from changing this to have the quick exit.  I guess they'll get a crash for the null case.

>> src/hotspot/share/classfile/fieldLayoutBuilder.cpp line 1381:
>> 
>>> 1379:       case LayoutRawBlock::REGULAR:
>>> 1380:         {
>>> 1381:           FieldInfo* fi = _field_info->adr_at(b->field_index());
>> 
>> Is there an assumption that the block field indexes are in ascending order?
>
> I'm not sure I understand the question.
> LayoutRawBlocks represent the fields layout, they are chained in ascending offset order.
> The field_index is the index in the FieldInfo array (from the class file) where this field is declared.

Yes, that was the question.  I meant to ask if the offsets are in ascending order, so that makes the code to coalesce them simpler.  Can you add a comment at 1367 that the field offsets are in ascending order and that makes reading this easier.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1695#discussion_r2461400686
PR Review Comment: https://git.openjdk.org/valhalla/pull/1695#discussion_r2461413743


More information about the valhalla-dev mailing list