RFR: 8349860: Make Class.isArray(), Class.isInterface() and Class.isPrimitive() non-native

Roger Riggs rriggs at openjdk.org
Wed Feb 19 15:12:59 UTC 2025


On Tue, 11 Feb 2025 20:56:39 GMT, Coleen Phillimore <coleenp at 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.

Is the change to isInterface and isPrimitive performance neutral?
As @IntrinsicCandidates, there would be some performance gain.

src/hotspot/share/prims/jvm.cpp line 2284:

> 2282: // Please, refer to the description in the jvmtiThreadState.hpp.
> 2283: 
> 2284: JVM_ENTRY(jboolean, JVM_IsInterface(JNIEnv *env, jclass cls))

JVM_IsInteface is deleted in Class.c, what purpose is this?

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

PR Review: https://git.openjdk.org/jdk/pull/23572#pullrequestreview-2627122068
PR Review Comment: https://git.openjdk.org/jdk/pull/23572#discussion_r1961858757


More information about the core-libs-dev mailing list