On Tue, 17 May 2022 06:00:37 GMT, Rémi Forax <fo...@openjdk.org> wrote:

>> Jorn Vernee has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   BootstrapMethodError -> ExceptionInInitializerError
>
> src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java 
> line 157:
> 
>> 155:     }
>> 156: 
>> 157:     static MethodHandle doSpecialize(MethodHandle leafHandle, 
>> CallingSequence callingSequence, ABIDescriptor abi) {
> 
> I think thise method should be split in to, one version for the upcall, one 
> for the downcall, i do not see the point of merging the two codes.

I've split this method into a specializeDowncall and specializeUpcall method.

> src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java 
> line 816:
> 
>> 814:             return;
>> 815:         }
>> 816:         if (con instanceof Integer) {
> 
> those can use the instanceof + type pattern

Done

> src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java 
> line 967:
> 
>> 965: 
>> 966:     // unaligned constants
>> 967:     public final static ValueLayout.OfBoolean JAVA_BOOLEAN_UNALIGNED = 
>> JAVA_BOOLEAN;
> 
> as far as i understand, those constants are accessed from the bytecode, they 
> should be in their own class to cleanly separate the specializer part and the 
> runtime part.

I've put these in a nest `Runtime` class, with a comment explaining that they 
are referenced from the generated code.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8685

Reply via email to