[foreign] RFR: binder should check that no array carriers are present in native functions descriptors

Sundararajan Athijegannathan sundararajan.athijegannathan at oracle.com
Tue Aug 7 14:07:32 UTC 2018


Looks good!

PS. Yes, need to add more test cases for jextract. Will address in next 
patch...

-Sundar

On 07/08/18, 7:21 PM, Maurizio Cimadamore wrote:
> Hi,
> as a followup of recent's Sundar patch, here's a patch which adds some 
> checks to the binder in order to emit a more useful exception when 
> attempting to bind a function which contains array carriers. Three 
> cases need to be covered:
>
> 1) native header binding (this is done through NativeInvoker)
> 2) callbacks (this is done by adding a check in UpcallHandler)
> 3) function pointer struct field access - this is done by adding a 
> check in LayoutType.ofFunction - which is also handy in case the user 
> wants to get a layout type out of an unsupported functional interface
>
> The test check all these three cases. When going through this exercise 
> I noted that there was a bug in LayoutResolver when it came to 
> resolving arrays - size info was dropped on the floor. I fixed that too.
>
> Two followup comments:
>
> * we should validate what jextract does in cases (2) and (3) as my 
> understanding of Sundar patch is that it is mainly focussed at (1)
> * we should think of a binder-wide exception type. We are now using 
> RuntimeExceptions which is way too broad, we should rethink exception 
> handling in the binder
>
> Webrev:
>
> http://cr.openjdk.java.net/~mcimadamore/panama/noArraysInFunc/
>
> Maurizio
>
>


More information about the panama-dev mailing list