On Wed, 7 May 2025 07:46:45 GMT, Per Minborg <[email protected]> wrote:
>> This sketch shows how "Stable Updaters" can be used to create stable
>> computations of `@Stable` fields. Only one updater is needed per class,
>> similar to `AtomicIntegerFieldUpdater`.
>
> Per Minborg has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Add a method handle based field updater
src/java.base/share/classes/jdk/internal/lang/stable/StableFieldUpdater.java
line 173:
> 171: if (!underlying.type().parameterType(0).equals(Object.class)) {
> 172: underlying =
> underlying.asType(underlying.type().changeParameterType(0, Object.class));
> 173: }
Suggestion:
var type = underlying.type();
if (type.returnType() != int.class || type.parameterCount() != 1) {
throw new IllegalArgumentException("Illegal underlying function: "
+ underlying);
}
if (!type.parameterType(0).equals(Object.class)) {
underlying = underlying.asType(type.changeParameterType(0,
Object.class));
}
underlying.type() is used 4 times, local variables should be used
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25040#discussion_r2077031643