abstract class jdk.incubator.foreign.AbstractLayout implements jdk.incubator.foreign.MemoryLayout
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: jdk.incubator.foreign.AbstractLayout
super_class: java.lang.Object
{
private final java.util.OptionalLong size;
descriptor: Ljava/util/OptionalLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final long alignment;
descriptor: J
flags: (0x0010) ACC_FINAL
private final java.util.Optional<java.lang.String> name;
descriptor: Ljava/util/Optional;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Optional<Ljava/lang/String;>;
static final java.lang.constant.DirectMethodHandleDesc BSM_GET_STATIC_FINAL;
descriptor: Ljava/lang/constant/DirectMethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ClassDesc CD_LAYOUT;
descriptor: Ljava/lang/constant/ClassDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ClassDesc CD_VALUE_LAYOUT;
descriptor: Ljava/lang/constant/ClassDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ClassDesc CD_SEQUENCE_LAYOUT;
descriptor: Ljava/lang/constant/ClassDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ClassDesc CD_GROUP_LAYOUT;
descriptor: Ljava/lang/constant/ClassDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ClassDesc CD_BYTEORDER;
descriptor: Ljava/lang/constant/ClassDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ConstantDesc BIG_ENDIAN;
descriptor: Ljava/lang/constant/ConstantDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.ConstantDesc LITTLE_ENDIAN;
descriptor: Ljava/lang/constant/ConstantDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_PADDING;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_VALUE;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_SIZED_SEQUENCE;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_UNSIZED_SEQUENCE;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_STRUCT;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.constant.MethodHandleDesc MH_UNION;
descriptor: Ljava/lang/constant/MethodHandleDesc;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=0, args_size=0
0: getstatic java.lang.constant.ConstantDescs.CD_ConstantBootstraps:Ljava/lang/constant/ClassDesc;
ldc "getStaticFinal"
1: getstatic java.lang.constant.ConstantDescs.CD_Object:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic java.lang.constant.ConstantDescs.CD_Class:Ljava/lang/constant/ClassDesc;
aastore
2: invokestatic java.lang.constant.ConstantDescs.ofConstantBootstrap:(Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
3: putstatic jdk.incubator.foreign.AbstractLayout.BSM_GET_STATIC_FINAL:Ljava/lang/constant/DirectMethodHandleDesc;
4: ldc Ljdk/incubator/foreign/MemoryLayout;
invokevirtual java.lang.Class.describeConstable:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.constant.ClassDesc
putstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
5: ldc Ljdk/incubator/foreign/ValueLayout;
invokevirtual java.lang.Class.describeConstable:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.constant.ClassDesc
putstatic jdk.incubator.foreign.AbstractLayout.CD_VALUE_LAYOUT:Ljava/lang/constant/ClassDesc;
6: ldc Ljdk/incubator/foreign/SequenceLayout;
invokevirtual java.lang.Class.describeConstable:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.constant.ClassDesc
putstatic jdk.incubator.foreign.AbstractLayout.CD_SEQUENCE_LAYOUT:Ljava/lang/constant/ClassDesc;
7: ldc Ljdk/incubator/foreign/GroupLayout;
invokevirtual java.lang.Class.describeConstable:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.constant.ClassDesc
putstatic jdk.incubator.foreign.AbstractLayout.CD_GROUP_LAYOUT:Ljava/lang/constant/ClassDesc;
8: ldc Ljava/nio/ByteOrder;
invokevirtual java.lang.Class.describeConstable:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.constant.ClassDesc
putstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
9: getstatic jdk.incubator.foreign.AbstractLayout.BSM_GET_STATIC_FINAL:Ljava/lang/constant/DirectMethodHandleDesc;
ldc "BIG_ENDIAN"
getstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ConstantDesc
dup
iconst_0
getstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.DynamicConstantDesc.ofNamed:(Ljava/lang/constant/DirectMethodHandleDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ConstantDesc;)Ljava/lang/constant/DynamicConstantDesc;
putstatic jdk.incubator.foreign.AbstractLayout.BIG_ENDIAN:Ljava/lang/constant/ConstantDesc;
10: getstatic jdk.incubator.foreign.AbstractLayout.BSM_GET_STATIC_FINAL:Ljava/lang/constant/DirectMethodHandleDesc;
ldc "LITTLE_ENDIAN"
getstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ConstantDesc
dup
iconst_0
getstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.DynamicConstantDesc.ofNamed:(Ljava/lang/constant/DirectMethodHandleDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ConstantDesc;)Ljava/lang/constant/DynamicConstantDesc;
putstatic jdk.incubator.foreign.AbstractLayout.LITTLE_ENDIAN:Ljava/lang/constant/ConstantDesc;
11: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofPaddingBits"
12: getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic java.lang.constant.ConstantDescs.CD_long:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
13: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_PADDING:Ljava/lang/constant/MethodHandleDesc;
14: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofValueBits"
15: getstatic jdk.incubator.foreign.AbstractLayout.CD_VALUE_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_2
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic java.lang.constant.ConstantDescs.CD_long:Ljava/lang/constant/ClassDesc;
aastore
dup
iconst_1
getstatic jdk.incubator.foreign.AbstractLayout.CD_BYTEORDER:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
16: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_VALUE:Ljava/lang/constant/MethodHandleDesc;
17: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofSequence"
18: getstatic jdk.incubator.foreign.AbstractLayout.CD_SEQUENCE_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_2
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic java.lang.constant.ConstantDescs.CD_long:Ljava/lang/constant/ClassDesc;
aastore
dup
iconst_1
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
19: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_SIZED_SEQUENCE:Ljava/lang/constant/MethodHandleDesc;
20: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofSequence"
21: getstatic jdk.incubator.foreign.AbstractLayout.CD_SEQUENCE_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
22: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_UNSIZED_SEQUENCE:Ljava/lang/constant/MethodHandleDesc;
23: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofStruct"
24: getstatic jdk.incubator.foreign.AbstractLayout.CD_GROUP_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
invokeinterface java.lang.constant.ClassDesc.arrayType:()Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
25: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_STRUCT:Ljava/lang/constant/MethodHandleDesc;
26: getstatic java.lang.constant.DirectMethodHandleDesc$Kind.INTERFACE_STATIC:Ljava/lang/constant/DirectMethodHandleDesc$Kind;
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
ldc "ofUnion"
27: getstatic jdk.incubator.foreign.AbstractLayout.CD_GROUP_LAYOUT:Ljava/lang/constant/ClassDesc;
iconst_1
anewarray java.lang.constant.ClassDesc
dup
iconst_0
getstatic jdk.incubator.foreign.AbstractLayout.CD_LAYOUT:Ljava/lang/constant/ClassDesc;
invokeinterface java.lang.constant.ClassDesc.arrayType:()Ljava/lang/constant/ClassDesc;
aastore
invokestatic java.lang.constant.MethodTypeDesc.of:(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/MethodTypeDesc;
28: invokestatic java.lang.constant.MethodHandleDesc.ofMethod:(Ljava/lang/constant/DirectMethodHandleDesc$Kind;Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/MethodTypeDesc;)Ljava/lang/constant/DirectMethodHandleDesc;
putstatic jdk.incubator.foreign.AbstractLayout.MH_UNION:Ljava/lang/constant/MethodHandleDesc;
29: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.util.OptionalLong, long, java.util.Optional<java.lang.String>);
descriptor: (Ljava/util/OptionalLong;JLjava/util/Optional;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
2: aload 0
lload 2
putfield jdk.incubator.foreign.AbstractLayout.alignment:J
3: aload 0
aload 4
putfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
4: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/incubator/foreign/AbstractLayout;
0 5 1 size Ljava/util/OptionalLong;
0 5 2 alignment J
0 5 4 name Ljava/util/Optional<Ljava/lang/String;>;
Signature: (Ljava/util/OptionalLong;JLjava/util/Optional<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
size
alignment
name
java.util.Optional<java.lang.String> optName();
descriptor: ()Ljava/util/Optional;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
Signature: ()Ljava/util/Optional<Ljava/lang/String;>;
public jdk.incubator.foreign.AbstractLayout withName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/incubator/foreign/AbstractLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
aload 1
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
invokevirtual jdk.incubator.foreign.AbstractLayout.dup:(JLjava/util/Optional;)Ljdk/incubator/foreign/AbstractLayout;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public final java.util.Optional<java.lang.String> name();
descriptor: ()Ljava/util/Optional;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
Signature: ()Ljava/util/Optional<Ljava/lang/String;>;
abstract jdk.incubator.foreign.AbstractLayout dup(long, java.util.Optional<java.lang.String>);
descriptor: (JLjava/util/Optional;)Ljdk/incubator/foreign/AbstractLayout;
flags: (0x0400) ACC_ABSTRACT
Signature: (JLjava/util/Optional<Ljava/lang/String;>;)Ljdk/incubator/foreign/AbstractLayout;
MethodParameters:
Name Flags
alignment
name
public jdk.incubator.foreign.AbstractLayout withBitAlignment(long);
descriptor: (J)Ljdk/incubator/foreign/AbstractLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual jdk.incubator.foreign.AbstractLayout.checkAlignment:(J)V
1: aload 0
lload 1
aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
invokevirtual jdk.incubator.foreign.AbstractLayout.dup:(JLjava/util/Optional;)Ljdk/incubator/foreign/AbstractLayout;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/foreign/AbstractLayout;
0 2 1 alignmentBits J
MethodParameters:
Name Flags
alignmentBits
void checkAlignment(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lload 1
lconst_1
lsub
land
lconst_0
lcmp
ifne 2
1: lload 1
ldc 8
lcmp
ifge 3
2: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid alignment: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/foreign/AbstractLayout;
0 4 1 alignmentBitCount J
MethodParameters:
Name Flags
alignmentBitCount
static void checkSize(long);
descriptor: (J)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
iconst_0
invokestatic jdk.incubator.foreign.AbstractLayout.checkSize:(JZ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 size J
MethodParameters:
Name Flags
size
static void checkSize(long, boolean);
descriptor: (JZ)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 2 0: lload 0
lconst_0
lcmp
iflt 1
iload 2
ifne 2
lload 0
lconst_0
lcmp
ifne 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid size for layout: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 size J
0 3 2 includeZero Z
MethodParameters:
Name Flags
size
includeZero
public final long bitAlignment();
descriptor: ()J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
public boolean hasSize();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.isPresent:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
public long bitSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
aload 0
invokedynamic get(Ljdk/incubator/foreign/AbstractLayout;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/foreign/AbstractLayout.badSizeException()Ljava/lang/UnsupportedOperationException; (7)
()Ljava/lang/UnsupportedOperationException;
invokevirtual java.util.OptionalLong.orElseThrow:(Ljava/util/function/Supplier;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
static java.util.OptionalLong optSize(jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/OptionalLong;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast jdk.incubator.foreign.AbstractLayout
getfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 layout Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
layout
private java.lang.UnsupportedOperationException badSizeException();
descriptor: ()Ljava/lang/UnsupportedOperationException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
ldc "Cannot compute size of a layout which is, or depends on a sequence layout with unspecified size"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
java.lang.String decorateLayoutString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 2
1: ldc "%s(%s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.foreign.AbstractLayout.hasNaturalAlignment:()Z
ifne 4
3: new java.lang.StringBuilder
dup
aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "%"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/incubator/foreign/AbstractLayout;
0 5 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
boolean hasNaturalAlignment();
descriptor: ()Z
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.isPresent:()Z
ifeq 1
aload 0
getfield jdk.incubator.foreign.AbstractLayout.size:Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.getAsLong:()J
aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/foreign/AbstractLayout;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
invokevirtual java.util.Optional.hashCode:()I
aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
invokestatic java.lang.Long.hashCode:(J)I
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/foreign/AbstractLayout;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.incubator.foreign.AbstractLayout
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
aload 1
checkcast jdk.incubator.foreign.AbstractLayout
getfield jdk.incubator.foreign.AbstractLayout.name:Ljava/util/Optional;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 7
5: aload 0
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 1
checkcast jdk.incubator.foreign.AbstractLayout
getfield jdk.incubator.foreign.AbstractLayout.alignment:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 7
6: iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/incubator/foreign/AbstractLayout;
0 8 1 other Ljava/lang/Object;
MethodParameters:
Name Flags
other
public jdk.incubator.foreign.MemoryLayout withBitAlignment(long);
descriptor: (J)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
0: aload 0
lload 1
invokevirtual jdk.incubator.foreign.AbstractLayout.withBitAlignment:(J)Ljdk/incubator/foreign/AbstractLayout;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.incubator.foreign.MemoryLayout withName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual jdk.incubator.foreign.AbstractLayout.withName:(Ljava/lang/String;)Ljdk/incubator/foreign/AbstractLayout;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "AbstractLayout.java"
InnerClasses:
public final Kind = java.lang.constant.DirectMethodHandleDesc$Kind of java.lang.constant.DirectMethodHandleDesc
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles