On Fri, 9 May 2025 19:13:50 GMT, Frederic Parain <[email protected]> wrote:
> Since the removal of Q-types and the notion that nullability was not part of > the Java type, there was an awkward situation because nullable arrays of > value types and null free arrays of value types had each a different Java > mirror when they were in fact supposed to have the same Java type. > In order to accommodate to the new situation, that arrays can have properties > (nullability, flatness, atomicity, etc.) that are not part of their Java > type, the 1-1 relationship between the *ArrayKlass and the Java mirror must > be broken. > The proposed solution is to dedicate one instance of ObjArrayKlass to > represent the Java type of the array in the JVM, and have this instance being > the counterpart of the Java mirror of the array, and have several instances > of RefArrayKlass and FlatArrayKlass that represent the refinements of the > Java array type. Each RefArrayKlass/FlatArrayKlass encodes the characteristic > of a Java array for a given element type and a set of properties. This pull request has now been integrated. Changeset: 94cca4b7 Author: Frederic Parain <[email protected]> URL: https://git.openjdk.org/valhalla/commit/94cca4b78eb5d6ceb6fc47766c03c738893c53a6 Stats: 4662 lines in 164 files changed: 2936 ins; 1063 del; 663 mod 8366705: [lworld] Re-work of arrays meta-data Co-authored-by: Tobias Hartmann <[email protected]> Co-authored-by: Coleen Phillimore <[email protected]> Co-authored-by: Chen Liang <[email protected]> Co-authored-by: Matias Saavedra Silva <[email protected]> Reviewed-by: coleenp, thartmann, dsimms ------------- PR: https://git.openjdk.org/valhalla/pull/1452
