On Fri, 4 Jun 2021 11:07:27 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
>> test/jdk/java/foreign/valist/VaListTest.java line 706: >> >>> 704: vaList.skip(BigPoint_LAYOUT); >>> 705: assertEquals((long) vaList.vargAsLong(C_LONG), 42); >>> 706: })}, >> >> Looks like a carrier size mismatch here: >> >> >> java.lang.IllegalArgumentException: Carrier size mismatch: long != >> b32[abi/kind=LONG] >> at >> jdk.incubator.foreign/jdk.internal.foreign.Utils.checkPrimitiveCarrierCompat(Utils.java:111) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.SharedUtils.checkCompatibleType(SharedUtils.java:231) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.x64.windows.WinVaList.read(WinVaList.java:114) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.x64.windows.WinVaList.read(WinVaList.java:109) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.x64.windows.WinVaList.vargAsLong(WinVaList.java:84) >> at VaListTest.lambda$upcalls$58(VaListTest.java:705) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.ProgrammableInvoker.invokeNative(Native >> Method) >> at >> jdk.incubator.foreign/jdk.internal.foreign.abi.ProgrammableInvoker.invokeMoves(ProgrammableInvoker.java:290) >> at VaListTest.testUpcall(VaListTest.java:530) >> >> >> Need to use `C_LONG_LONG` to be cross-platform compatible. (sorry for not >> noticing this). >> >> Suggestion: >> >> { linkVaListCB("upcallBigStructPlusScalar"), >> VaListConsumer.mh(vaList -> { >> MemorySegment struct = >> vaList.vargAsSegment(BigPoint_LAYOUT, ResourceScope.newImplicitScope()); >> assertEquals((long) VH_BigPoint_x.get(struct), 8); >> assertEquals((long) VH_BigPoint_y.get(struct), 16); >> >> assertEquals((long) vaList.vargAsLong(C_LONG_LONG), 42); >> })}, >> { linkVaListCB("upcallBigStructPlusScalar"), >> VaListConsumer.mh(vaList -> { >> vaList.skip(BigPoint_LAYOUT); >> assertEquals((long) vaList.vargAsLong(C_LONG_LONG), 42); >> })}, > > Also, it looks like the cast to `(long)` on the `vaList.vargAsLong` lines is > redundant (thanks IntelliJ). Thanks for your help! These are both fixed now. ------------- PR: https://git.openjdk.java.net/jdk/pull/3617