On Tue, 29 Jul 2025 19:42:42 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> Fields are initialized by injection in javaClasses instead of through this 
>> constructor, so it's easy for us to accidentally forget to inject a field.
>
> For IDENTITY, I didn't have to inject that one because the Java code knew 
> when to set it, not the JVM code reading the data out of the classfile.  And 
> the logic belongs in the Java code, not the JVM. This one comes from the 
> classfile, there isn't another way to get the information to the 
> java.lang.Class.

The VM and Java use the same logic for the value of isIdentity(). 
It is computed from as many a 5 fields/flags. At present, it has to be computed 
on each call to Class.isIdentity().
It would be reasonable to compute the value once in the constructor, but the 
code in the constructor is not run.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26517#discussion_r2243785633

Reply via email to