[foreign-jextract] RFR 8238232: Jextract erroneously inserts sequence layouts into function descriptor parameter/return

sundararajan.athijegannathan at oracle.com sundararajan.athijegannathan at oracle.com
Thu Jan 30 13:53:51 UTC 2020


Looks good.

-Sundar

On 30/01/20 7:07 pm, Maurizio Cimadamore wrote:
> Hi,
> a number of issues have been reported which share a common cause: 
> jextract is erroneously using sequence layouts in function 
> parameters/returns; also, jextract is also erroneously using 
> MemorySegment carriers when this issue happens (instead of just 
> MemoryAddress).
>
> I did a bit of a cleanup in our handling of types in functions - now:
>
> 1) when we create a function _type_ we always lower array 
> parameter/return types to that on a corresponding pointer (as the C 
> compiler would do)
> 2) in the Declaration.Function object, it is possible to access the 
> function parameter declarations - no lower is done here (in case 
> somebody wanted to retrieve original types as per source code)
> 3) since Java carriers and FunctionDescriptor are both derived from 
> the function type (which is lowered as per (1)) no further fixup is 
> needed - the right thing will just happen
>
> This leads to a simpler code, where lowering is done in a single 
> place, rather than in 2 (or more) places like before.
>
> I've added a test and refactored our SmokeTest a little to add 
> capability to lookup declarations of a given kind.
>
> Webrev:
>
> http://cr.openjdk.java.net/~mcimadamore/panama/8238232/
>
> Cheers
> Maurizio
>


More information about the panama-dev mailing list