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