On Tue, 28 Apr 2026 04:37:52 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 incrementally with one 
> additional commit since the last revision:
> 
>   Revert changes for FunctionDescriptor and Linker

I reverted changes for `FunctionDescriptor` and `Linker` - it means this PR 
makes change for `MemoryLayout`, `MemorySegment`, and `ValueLayouts` only. I'd 
like to continue to discussion how can we treat `FunctionDescriptor` in PR 
#30481.

@mcimadamore 
Can you agree with this change?

@liach @minborg 
Can you approve this PR again?

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

PR Comment: https://git.openjdk.org/jdk/pull/30443#issuecomment-4332387666

Reply via email to