public class jdk.internal.foreign.abi.SharedUtils$SimpleVaArg
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.abi.SharedUtils$SimpleVaArg
  super_class: java.lang.Object
{
  public final java.lang.Class<?> carrier;
    descriptor: Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  public final jdk.incubator.foreign.MemoryLayout layout;
    descriptor: Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.Object value;
    descriptor: Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public void <init>(java.lang.Class<?>, jdk.incubator.foreign.MemoryLayout, );
    descriptor: (Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // jdk.internal.foreign.abi.SharedUtils$SimpleVaArg this
        start local 1 // java.lang.Class carrier
        start local 2 // jdk.incubator.foreign.MemoryLayout layout
        start local 3 // java.lang.Object value
         0: .line 404
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 405
            aload 0 /* this */
            aload 1 /* carrier */
            putfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.carrier:Ljava/lang/Class;
         2: .line 406
            aload 0 /* this */
            aload 2 /* layout */
            putfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.layout:Ljdk/incubator/foreign/MemoryLayout;
         3: .line 407
            aload 0 /* this */
            aload 3 /* value */
            putfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.value:Ljava/lang/Object;
         4: .line 408
            return
        end local 3 // java.lang.Object value
        end local 2 // jdk.incubator.foreign.MemoryLayout layout
        end local 1 // java.lang.Class carrier
        end local 0 // jdk.internal.foreign.abi.SharedUtils$SimpleVaArg this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/internal/foreign/abi/SharedUtils$SimpleVaArg;
            0    5     1  carrier  Ljava/lang/Class<*>;
            0    5     2   layout  Ljdk/incubator/foreign/MemoryLayout;
            0    5     3    value  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;Ljdk/incubator/foreign/MemoryLayout;Ljava/lang/Object;)V
    MethodParameters:
         Name  Flags
      carrier  
      layout   
      value    

  public java.lang.invoke.VarHandle varHandle();
    descriptor: ()Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.SharedUtils$SimpleVaArg this
         0: .line 411
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.carrier:Ljava/lang/Class;
            ldc Ljdk/incubator/foreign/MemoryAddress;
            if_acmpne 2
         1: .line 412
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.layout:Ljdk/incubator/foreign/MemoryLayout;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout$PathElement
            invokeinterface jdk.incubator.foreign.MemoryLayout.varHandle:(Ljava/lang/Class;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/invoke/VarHandle;
            invokestatic jdk.incubator.foreign.MemoryHandles.asAddressVarHandle:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
            goto 3
         2: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.layout:Ljdk/incubator/foreign/MemoryLayout;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.SharedUtils$SimpleVaArg.carrier:Ljava/lang/Class;
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout$PathElement
            invokeinterface jdk.incubator.foreign.MemoryLayout.varHandle:(Ljava/lang/Class;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/invoke/VarHandle;
         3: .line 411
      StackMap locals:
      StackMap stack: java.lang.invoke.VarHandle
            areturn
        end local 0 // jdk.internal.foreign.abi.SharedUtils$SimpleVaArg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/foreign/abi/SharedUtils$SimpleVaArg;
}
SourceFile: "SharedUtils.java"
NestHost: jdk.internal.foreign.abi.SharedUtils
InnerClasses:
  public abstract PathElement = jdk.incubator.foreign.MemoryLayout$PathElement of jdk.incubator.foreign.MemoryLayout
  public SimpleVaArg = jdk.internal.foreign.abi.SharedUtils$SimpleVaArg of jdk.internal.foreign.abi.SharedUtils