[lworld] RFR: 8363846: [lworld] Make Class.isIdentityClass() non-native

Coleen Phillimore coleenp at openjdk.org
Wed Jul 23 11:48:02 UTC 2025


On Tue, 22 Jul 2025 23:43:33 GMT, Chen Liang <liach at openjdk.org> wrote:

>> This moves isIdentityClass() implementation to Class.java, and checks within the JVM that is_identity_class() doesn't check the access flags for an ArrayKlass, since AccessFlags aren't initialized in ArrayKlasses.  The AccessFlags should be moved from Klass.hpp to InstanceKlass.cpp in mainline but that's a more complicated change and has several pieces.
>> Added a test.
>> Tested with tier1 locally.
>
> src/hotspot/share/oops/instanceKlass.cpp line 3594:
> 
>> 3592: }
>> 3593: 
>> 3594: void InstanceKlass::check_can_be_annotated_with_NullRestricted(InstanceKlass* type, Symbol* container_klass_name, TRAPS) {
> 
> I am surprised we still have this remnant of implicit construction now we have strict fields - shouldn't we replace this with strictness checks?

This was part of another change, and we still need this to check if a field can be made an inline type.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1514#discussion_r2225301191


More information about the valhalla-dev mailing list