> 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.
Frederic Parain has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 67 commits: - Merge branch 'array_klasses' of github.com:fparain/valhalla into array_klasses - Forgot a TODO - Small cleanup - Merge remote-tracking branch 'upstream/lworld' into array_klasses - Moved get_Klass() back to protected and updated usages - Merge branch 'array_klasses' of github.com:fparain/valhalla into array_klasses - Linked TODOs to JDK-8366668 - Multidim array fix - Cleanup T_FLAT_ELEMENT related code - Fix for isAssignableFrom + tests - ... and 57 more: https://git.openjdk.org/valhalla/compare/22e9d5f5...527a17b6 ------------- Changes: https://git.openjdk.org/valhalla/pull/1452/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1452&range=03 Stats: 4735 lines in 177 files changed: 2938 ins; 1060 del; 737 mod Patch: https://git.openjdk.org/valhalla/pull/1452.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1452/head:pull/1452 PR: https://git.openjdk.org/valhalla/pull/1452
