RFR: 8238226: Revisit FunctionDescriptor
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Tue Feb 11 15:03:35 UTC 2020
On Tue, 11 Feb 2020 12:50:46 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> Continuation of: https://mail.openjdk.java.net/pipermail/panama-dev/2020-February/007418.html
>
>> Hi,
>>
>> Please review the following patch that revisits FunctionDescriptor: 1.
>> Adds appendArgumentLayouts, and changeReturnLayout combinator methods.
>> 2. Removes the variadic flag. This flag was not really being used in
>> practice, since we can not link variadic functions directly any ways.
>> Using the new appendArgumentLayouts method we can 'specialize' a base FD
>> with different argument layouts representing vararg arguments. I think
>> if a similar flag is needed in the future, we should consider adding
>> annotations to FunctionDescriptor, and making it an annotation instead,
>> but currently it doesn't seem like it's pulling it's weight by being in
>> the API.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~jvernee/panama/webrevs/cleanup_fd/webrev.00/
>> Bugs: https://bugs.openjdk.java.net/browse/JDK-8238226,
>> https://bugs.openjdk.java.net/browse/JDK-8237580
>>
>> Again, this patch applies on top of the Binding cleanup patch.
>>
>> Thanks,
>> Jorn
Looks good - apart from a minor nit; also please sync up with Sundar w.r.t. foreign-jextract changes.
test/jdk/java/foreign/StdLibTest.java line 356:
> 355: MethodHandle mh = abi.downcallHandle(printfAddr, mt,
> 356: FunctionDescriptor.of(C_INT, argLayouts.toArray(new MemoryLayout[0])));
> 357: return mh.asSpreader(1, Object[].class, args.size());
It feels like we should be able to simplify this routine with the new FunctionDescriptor::append ?
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/15
More information about the panama-dev
mailing list