On Wed, 19 Feb 2025 03:30:04 GMT, Dean Long <dl...@openjdk.org> wrote:

>> Class.isInterface() can check modifier flags, Class.isArray() can check 
>> whether component mirror is non-null and Class.isPrimitive() needs a new 
>> final transient boolean in java.lang.Class that the JVM code initializes.
>> Tested with tier1-4 and performance tests.
>
> src/java.base/share/classes/java/lang/Class.java line 1287:
> 
>> 1285:      */
>> 1286:     public Class<?> getComponentType() {
>> 1287:         // Only return for array types. Storage may be reused for 
>> Class for instance types.
> 
> I don't see any changes to componentType related to reuse.  So was this 
> comment and the code below already obsolete?

It was. Before the componentType field was reused for the class initialization 
monitor int array, and it caused problems with core reflection if a program 
reflectively accesses this field after a few hundred times. See 
[JDK-8337622](https://bugs.openjdk.org/browse/JDK-8337622).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23572#discussion_r1961989175

Reply via email to