[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