On Thu, 26 Mar 2026 02:02:54 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> implements ValueLayout.OfChar
>       sealed interface OfSho...

LGTM. Thanks for the improvements.

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

Marked as reviewed by pminborg (Reviewer).

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

Reply via email to