[Rev 01] RFR: 8238226: Revisit FunctionDescriptor
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Tue Feb 11 18:34:48 UTC 2020
On Tue, 11 Feb 2020 16:40:29 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
>
> The pull request has been updated with 1 additional commit.
Marked as reviewed by mcimadamore (Committer).
test/jdk/java/foreign/StdLibTest.java line 352:
> 351: }
> 352: FunctionDescriptor printfSpec = StdLibHelper.printfBase.appendArgumentLayouts(
> 353: args.stream().map(a -> a.layout).toArray(MemoryLayout[]::new));
I would have dealt with expanding the function descriptor in the same loop where we expand the method type - but what you have is also fine.
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/15
More information about the panama-dev
mailing list