> Hello, > > We should consider moving the enum ArrayProperties from ArrayKlass to its own > class, ArrayProperties. In addition to making the code easier to read and > understand, this allows us to have explicit setters/getters, replacing the > bit-fiddling expressions that are used in many places. The > ArrayProperties-specific methods in ArrayKlass have been moved to be methods > in the new ArrayProperties class instead. > > Perhaps the most controversial change in this PR is the removal of > `ArrayKlass::ArrayProperties::DEFAULT` in favor of using a default > constructor for ArrayProperties. The semantics are still the same, i.e., > asking `.is_null_restricted()` or `.is_non_atomic()` will be false for the > default constructed property. With this I've also removed the unused fields > from ArrayProperties (DUMMY and comments). > > I did consider using define macros to generate enum+getters+setters, but I > opted for the stamped-out version instead. > > Testing: > * Running through tier1-2
Joel Sikström has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits: - Cleanups of earlier commits - Merge branch 'lworld' into JDK-8378000_array_properties - Semi-builder pattern for ArrayProperties - Add assert to check for invalid flags/bits - Change type to be consistent with compiler type - Braces around if-statement - 8378000: [lworld] Move ArrayProperties to its own class ------------- Changes: https://git.openjdk.org/valhalla/pull/2114/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2114&range=03 Stats: 267 lines in 24 files changed: 101 ins; 52 del; 114 mod Patch: https://git.openjdk.org/valhalla/pull/2114.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2114/head:pull/2114 PR: https://git.openjdk.org/valhalla/pull/2114
