[lworld] RFR: 8378000: [lworld] Move ArrayProperties to its own class [v3]

Joel Sikström jsikstro at openjdk.org
Thu Feb 19 17:56:06 UTC 2026


On Wed, 18 Feb 2026 18:45:22 GMT, Frederic Parain <fparain at openjdk.org> wrote:

>> Joel Sikström has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - Add assert to check for invalid flags/bits
>>  - Change type to be consistent with compiler type
>
> This is a very nice encapsulation of ArrayProperties. However, I'm wondering if the transformation could go one step further and make ArrayProperties instances immutable, because after their creation, there's no reason to change the set of properties of the array. This would prevent accidental modifications of the property set. It would also allow the creation of a static instance for the "default" set of properties independent from the constructors.

Thank you for the feedback @fparain. I had another go and introduced a sort of builder pattern, where you can chain-call `.with_{null_restricted, non_atomic}`, which returns a new ArrayProperties. That way the ArrayProperties instance itself is immutable and if you'd want to change it you have to reassign it, which can be guarded by const variables/fields.

With this I also introduced two static methods for getting an Invalid and Default property. We could have them as static member variables, perhaps using the `inline static` feature of C++17, but I think the methods are more approachable.

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

PR Comment: https://git.openjdk.org/valhalla/pull/2114#issuecomment-3928881755


More information about the valhalla-dev mailing list