On Tue, 28 Apr 2026 04:44:03 GMT, Yasumasa Suenaga <[email protected]> wrote:

>> In #30392, we found out some impl classes in FFM are marked as value based 
>> class, but they do not have `@ValueBased`.
>> I grep'ed JDK sources with 'ValueBased.html' which we expect that the word 
>> in Javadoc on value based class, and I tracked it to final implementation 
>> class. `final` classes in following list should have `@ValueBased`.
>> 
>> 
>> 
>> java.base/share/classes/java/lang/foreign/FunctionDescriptor.java
>>   public sealed interface FunctionDescriptor permits FunctionDescriptorImpl
>>     public final class FunctionDescriptorImpl implements FunctionDescriptor
>> 
>> java.base/share/classes/java/lang/foreign/MemoryLayout.java
>>   public sealed interface MemoryLayout permits SequenceLayout, GroupLayout, 
>> PaddingLayout, ValueLayout
>>     public sealed interface SequenceLayout extends MemoryLayout permits 
>> SequenceLayoutImpl
>>       public final class SequenceLayoutImpl extends 
>> AbstractLayout<SequenceLayoutImpl> implements SequenceLayout
>>     public sealed interface GroupLayout extends MemoryLayout permits 
>> StructLayout, UnionLayout
>>       public sealed interface StructLayout extends GroupLayout permits 
>> StructLayoutImpl
>>         public final class StructLayoutImpl extends 
>> AbstractGroupLayout<StructLayoutImpl> implements StructLayout
>>       public sealed interface UnionLayout extends GroupLayout permits 
>> UnionLayoutImpl
>>         public final class UnionLayoutImpl extends 
>> AbstractGroupLayout<UnionLayoutImpl> implements UnionLayout
>>     public sealed interface PaddingLayout extends MemoryLayout permits 
>> PaddingLayoutImpl
>>       public final class PaddingLayoutImpl extends 
>> AbstractLayout<PaddingLayoutImpl> implements PaddingLayout
>>     public sealed interface ValueLayout extends MemoryLayout permits 
>> ValueLayout.OfBoolean, ValueLayout.OfByte, ValueLayout.OfChar, 
>> ValueLayout.OfShort, ValueLayout.OfInt, ValueLayout.OfFloat, 
>> ValueLayout.OfLong, ValueLayout.OfDouble, AddressLayout
>>       sealed interface OfBoolean extends ValueLayout permits 
>> ValueLayouts.OfBooleanImpl
>>         public static final class OfBooleanImpl extends 
>> AbstractValueLayout<OfBooleanImpl> implements ValueLayout.OfBoolean
>>       sealed interface OfByte extends ValueLayout permits 
>> ValueLayouts.OfByteImpl
>>         public static final class OfByteImpl extends 
>> AbstractValueLayout<OfByteImpl> implements ValueLayout.OfByte
>>       sealed interface OfChar extends ValueLayout permits 
>> ValueLayouts.OfCharImpl
>>         public static final class OfCharImpl extends 
>> AbstractValueLayout<OfCharImpl> impl...
>
> Yasumasa Suenaga has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains three additional 
> commits since the last revision:
> 
>  - Merge remote-tracking branch 'origin/master' into JDK-8380955
>  - Revert changes for FunctionDescriptor and Linker
>  - 8380955: Value-based classes in FFM should have @ValueBased

Looks good

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

Marked as reviewed by mcimadamore (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/30443#pullrequestreview-4186814190

Reply via email to