RFR: 8237359: Clean up Binding

Maurizio Cimadamore mcimadamore at openjdk.java.net
Mon Feb 10 15:36:59 UTC 2020


On Mon, 10 Feb 2020 15:03:34 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

> Continuation of: https://mail.openjdk.java.net/pipermail/panama-dev/2020-February/007417.html
> 
>> Hi,
>> 
>> Please review the following patch that does a few cleanups of the 
>> Binding class implementation:
>> - Adds javadoc
>> - Uses static factory methods instead of raw constructors. This allows 
>> returning singletons for some of the operators for instance.
>> - Constructing a COPY_BUFFER binding now requires a MemoryLayout, 
>> instead of a separate size & alignment. This was easier given the use-cases.
>> - Binding.AllocateBuffer renamed to Binding.Allocate (since we already 
>> had Copy as well).
>> - BoxAddress renamed to ConvertAddress, as a more general name to 
>> describe the boxing & unboxing that can occur. Suggested by Maurizio.
>> 
>> Webrev: 
>> http://cr.openjdk.java.net/~jvernee/panama/webrevs/cleanup_bindings/webrev.00/
>> Bugs: https://bugs.openjdk.java.net/browse/JDK-8237359, 
>> https://bugs.openjdk.java.net/browse/JDK-8238227, 
>> https://bugs.openjdk.java.net/browse/JDK-8238235
>> 
>> This patch take care of several smaller issues all at once. It applies 
>> on top of the JDK-8237360 patch.
>> 
>> Thanks,
>> Jorn

Looks good - I like how he builder simplifies the invoker code. I've pointed out one minor nit in one place where you use a builder to create a single binding which, I think, should go through factory.

src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/x64/sysv/CallArranger.java line 123:

> 122:             csb.addArgumentBindings(long.class, MemoryLayouts.SysV.C_LONG,
> 123:                     Binding.builder().move(rax, long.class).build());
> 124:         }

can't you use the factory here?

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

Marked as reviewed by mcimadamore (Committer).

PR: https://git.openjdk.java.net/panama-foreign/pull/12


More information about the panama-dev mailing list