[foreign] RFR: consolidate native vs. carrier conversions

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri May 18 13:55:46 UTC 2018


Hi,
as noted yesterday, we have several paths which perform native 2 java 
conversion. The goal of this patch is to reduce the number of such 
paths, and use LayoutType wherever possible. This resulted in removal of 
a lot of duplicated code, in both UpcallHandler and NativeInvoker, which 
I think is good.

Given to the way we handle structs in native calls - that is spread 
struct fields into registers, using LayoutType here is not possible as 
structs have to be marshalled/unmarshalled bit by bit, according to the ABI.

In the process I realized that the binder was implicitly performing a 
conversion between Java null and Pointer.nullPointer(). I removed that 
for now, as I prefer things to err on the explicit-side of things.

Webrev:

http://cr.openjdk.java.net/~mcimadamore/panama/consolidate-load-store/

P.S.

This could probably use some testing in MacOS as well, since it touches 
core parts of the binder, close to the system ABI.

Cheers
Maurizio




More information about the panama-dev mailing list