On Tue, 28 Feb 2023 09:04:21 GMT, ExE Boss <d...@openjdk.org> wrote:

>> Viktor Klang has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains three commits:
>> 
>>  - Updating copyright header of ForEachOps.java and removing unnecessary 
>> suppression of an unchecked cast.
>>  - Write the initial value of the next reference without using the VarHandle
>>  - JDK-8302666: Replace CHM with VarHandle in ForeachOrderedTask
>
> src/java.base/share/classes/java/util/stream/ForEachOps.java line 513:
> 
>> 511:             // of right subtree (if any, which can be this task's right 
>> sibling)
>> 512:             //
>> 513:             var leftDescendant = (ForEachOrderedTask<S, 
>> T>)NEXT.getAndSet(this, null);
> 
> Casting the `null` is required for the resolved method descriptor to be 
> `(ForEachOrderedTask, ForEachOrderedTask)ForEachOrderedTask` instead of 
> `(ForEachOrderedTask, Object)ForEachOrderedTask`, which prevents unnecessary 
> type conversion `LambdaForm`s from being introduced and allows 
> [`VarHandle::withInvokeExactBehavior`] to be used:
> Suggestion:
> 
>             var leftDescendant = (ForEachOrderedTask<S, T>) 
> NEXT.getAndSet(this, (ForEachOrderedTask<S, T>) null);
> 
> 
> [`VarHandle::withInvokeExactBehavior`]: 
> https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior()

@ExE-Boss Ah, sorry, it was meant to be there. :)

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

PR: https://git.openjdk.org/jdk/pull/12320

Reply via email to