> 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...

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

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/30443/files
  - new: https://git.openjdk.org/jdk/pull/30443/files/c62c41cc..6fa48734

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=30443&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30443&range=01-02

  Stats: 133976 lines in 2500 files changed: 45229 ins; 75016 del; 13731 mod
  Patch: https://git.openjdk.org/jdk/pull/30443.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30443/head:pull/30443

PR: https://git.openjdk.org/jdk/pull/30443

Reply via email to