On Tue, 30 Nov 2021 13:20:32 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>> Following integration of the second incubator of the foreign function and >> memory API [1], we detected few divergences between the contents of the jdk >> repo and the panama repo: >> >> * the name of some of the `FunctionDescriptor` wither methods is different >> (e.g. `withAppendedLayoutArguments` vs. `appendLayoutArguments`), as it has >> been simplified and improved following a change that was not incorporated in >> [1]. >> >> * TestUpcall does not execute all the test combinations, because of an issue >> in the jtreg header (also fixed in the panama repo) >> >> * Addressing some feedback, we would like to bring back alignment to >> JAVA_INT layout constants (and related constants). >> >> Javadoc: >> http://cr.openjdk.java.net/~mcimadamore/8277924/v1/javadoc/jdk/incubator/foreign/package-summary.html >> Specdiff: >> http://cr.openjdk.java.net/~mcimadamore/8277924/v1/spec_diff/overview-summary.html >> >> [1] - #5907 > > Maurizio Cimadamore has updated the pull request incrementally with two > additional commits since the last revision: > > - Drop changes to alignment of layout constants > - Simplify logic to access package-private method in ValueLayout Marked as reviewed by psandoz (Reviewer). src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java line 140: > 138: public FunctionDescriptor insertArgumentLayouts(int index, > MemoryLayout... addedLayouts) { > 139: Objects.requireNonNull(addedLayouts); > 140: Arrays.stream(addedLayouts).forEach(Objects::requireNonNull); FWIW you can remove this line if you wish, since the `List.of()` will check for null elements. You could replace lines 139 to 143 with: if (index < 0 || index > argLayouts.size()) throw new IllegalArgumentException("Index out of bounds: " + index); List<MemoryLayout> added = List.of(addedLayouts); // null check on array and its elements List<MemoryLayout> newLayouts = new ArrayList<>(argLayouts.size() + added.size()); ------------- PR: https://git.openjdk.java.net/jdk/pull/6589