On Thu, 28 Apr 2022 20:06:47 GMT, Albert Mingkun Yang <ay...@openjdk.org> wrote:

>> src/hotspot/share/oops/instanceKlass.cpp line 497:
>> 
>>> 495:   _nest_host_index(0),
>>> 496:   _init_state(allocated),
>>> 497:   _reference_type(REF_NONE),
>> 
>> This is initializing `_reference_type` to the wrong value for a 
>> `InstanceRefKlass` object, which then needs to reset it in the derived 
>> constructor.  Why not get the reference type from the parser?  The 
>> (currently file-scoped static) determine_reference_type function in 
>> instanceRefKlass.cpp doesn't have any dependency on the klass object being 
>> constructed, just the parser.
>
> The current approach limits the knowledge of non-strong ref types to 
> `instanceRefKlass` file.

The `_reference_type` used to be initialized correctly in most cases, but
needed fixing up for a few cases during bootstrapping. With this change it is
*never* initialized correctly for Reference subtypes and always needs an
initialization kludge for them. That's not an improvement.

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

PR: https://git.openjdk.java.net/jdk/pull/8332

Reply via email to