RFR: 8255398: Add a dropReturn MethodHandle combinator

Remi Forax forax at univ-mlv.fr
Mon Oct 26 15:47:18 UTC 2020


----- Mail original -----
> De: "Jorn Vernee" <jvernee at openjdk.java.net>
> À: "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Lundi 26 Octobre 2020 16:37:20
> Objet: RFR: 8255398: Add a dropReturn MethodHandle combinator

> Hi,
> 
> This patch adds a `dropReturn` combinator to `MethodHandles` that can be used to
> create a new method handle that drops the return value, from a given method
> handle. Similar to the following code:
> 
> MethodHandle target = ...;
> Class<?> targetReturnType = target.type().returnType();
> if (targetReturnType != void.class)
>    target = filterReturnValue(target, empty(methodType(void.class,
>    targetReturnType)));
> // use target
> 
> But as a short-hand.

As i said in the JBS issue, it's not just a short hand,
it also the semantics of the POP/POP2 bytecode, remove the return value on top of the stack.

> 
> Thanks,
> Jorn

regards,
Rémi

> 
> -------------
> 
> Commit messages:
> - Add a dropReturn method handle combinator
> 
> Changes: https://git.openjdk.java.net/jdk/pull/866/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=866&range=00
>  Issue: https://bugs.openjdk.java.net/browse/JDK-8255398
>  Stats: 92 lines in 2 files changed: 92 ins; 0 del; 0 mod
>  Patch: https://git.openjdk.java.net/jdk/pull/866.diff
>  Fetch: git fetch https://git.openjdk.java.net/jdk pull/866/head:pull/866
> 
> PR: https://git.openjdk.java.net/jdk/pull/866


More information about the core-libs-dev mailing list