[lworld] RFR: 8321039: [lworld] Substitutability code must recognize new annotations
Frederic Parain
fparain at openjdk.org
Wed Dec 6 16:03:58 UTC 2023
On Tue, 5 Dec 2023 19:57:56 GMT, Mandy Chung <mchung at openjdk.org> wrote:
> An initial implementation for substitutability test and partial method handle and var handle support for null-restricted types. JDK-8317767 will provide the full library support for null-restricted types.
>
> This patch handles null-restricted field reference declared in a non-flat class. The default value of that field is lazily set by VM on read access. `Unsafe::getReference` may return null for null-restricted non-flat field.
>
> A new `jdk.internal.value.ValueClass` is created to provide JVM entry points for value classes until public APIs are defined. `jdk.internal.misc.newNullRestrictedArray` method is moved as well.
test/jdk/valhalla/valuetypes/NullRestrictedTest.java line 55:
> 53: public void lazyInitializedDefaultValue() {
> 54: // VM lazily sets the null-restricted non-flat field to zero default
> 55: assertTrue(new EmptyContainer() == EmptyContainer.default);
The `.default` syntax is translated to `aconst_init` which is going to be removed.
May be use `ValueClass.zeroInstance(EmptyContainer.class)` instead.
Applies to all `.default` usage in this file.
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/960#discussion_r1417583647
More information about the valhalla-dev
mailing list