public class jdk.internal.foreign.LayoutPath
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.foreign.LayoutPath
super_class: java.lang.Object
{
private static final jdk.internal.access.JavaLangInvokeAccess JLI;
descriptor: Ljdk/internal/access/JavaLangInvokeAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle ADD_STRIDE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle MH_ADD_SCALED_OFFSET;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int UNSPECIFIED_ELEM_INDEX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private final jdk.incubator.foreign.MemoryLayout layout;
descriptor: Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long offset;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.foreign.LayoutPath enclosing;
descriptor: Ljdk/internal/foreign/LayoutPath;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long[] strides;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long elementIndex;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout> sizeFunc;
descriptor: Ljava/util/function/ToLongFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
private static final long[] EMPTY_STRIDES;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=1, args_size=0
0: invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
putstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
1: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 2: aload 0
ldc Ljdk/internal/foreign/LayoutPath;
ldc "addStride"
3: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
ldc Ljdk/incubator/foreign/MemorySegment;
iconst_3
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
4: invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.internal.foreign.LayoutPath.ADD_STRIDE:Ljava/lang/invoke/MethodHandle;
5: aload 0
ldc Ljdk/internal/foreign/LayoutPath;
ldc "addScaledOffset"
6: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
7: invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.internal.foreign.LayoutPath.MH_ADD_SCALED_OFFSET:Ljava/lang/invoke/MethodHandle;
end local 0 8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 0
start local 0 10: new java.lang.ExceptionInInitializerError
dup
aload 0
invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack:
iconst_0
newarray 11
putstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
return
LocalVariableTable:
Start End Slot Name Signature
2 8 0 lookup Ljava/lang/invoke/MethodHandles$Lookup;
10 11 0 ex Ljava/lang/Throwable;
Exception table:
from to target type
1 8 9 Class java.lang.Throwable
private void <init>(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 5 start local 7 start local 8 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
2: aload 0
lload 2
putfield jdk.internal.foreign.LayoutPath.offset:J
3: aload 0
aload 4
putfield jdk.internal.foreign.LayoutPath.strides:[J
4: aload 0
aload 7
putfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
5: aload 0
lload 5
putfield jdk.internal.foreign.LayoutPath.elementIndex:J
6: aload 0
aload 8
putfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
7: return
end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/foreign/LayoutPath;
0 8 1 layout Ljdk/incubator/foreign/MemoryLayout;
0 8 2 offset J
0 8 4 strides [J
0 8 5 elementIndex J
0 8 7 enclosing Ljdk/internal/foreign/LayoutPath;
0 8 8 sizeFunc Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
Signature: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)V
MethodParameters:
Name Flags
layout
offset
strides
elementIndex
enclosing
sizeFunc
public jdk.internal.foreign.LayoutPath sequenceElement();
descriptor: ()Ljdk/internal/foreign/LayoutPath;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
ldc Ljdk/incubator/foreign/SequenceLayout;
ldc "attempting to select a sequence element from a non-sequence layout"
invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
1: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.SequenceLayout
astore 1
start local 1 2: aload 1
invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
astore 2
start local 2 3: aload 2
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
aload 0
aload 0
getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
aload 2
invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
ldc -1
aload 0
invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/foreign/LayoutPath;
2 4 1 seq Ljdk/incubator/foreign/SequenceLayout;
3 4 2 elem Ljdk/incubator/foreign/MemoryLayout;
public jdk.internal.foreign.LayoutPath sequenceElement(long, long);
descriptor: (JJ)Ljdk/internal/foreign/LayoutPath;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=3
start local 0 start local 1 start local 3 0: aload 0
ldc Ljdk/incubator/foreign/SequenceLayout;
ldc "attempting to select a sequence element from a non-sequence layout"
invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
1: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.SequenceLayout
astore 5
start local 5 2: aload 0
aload 5
lload 1
invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
3: aload 5
invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
astore 6
start local 6 4: aload 0
getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
aload 6
invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
lstore 7
start local 7 5: aload 6
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
lload 1
lload 7
lmul
ladd
aload 0
lload 7
lload 3
lmul
invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
6: ldc -1
aload 0
7: invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
areturn
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/foreign/LayoutPath;
0 8 1 start J
0 8 3 step J
2 8 5 seq Ljdk/incubator/foreign/SequenceLayout;
4 8 6 elem Ljdk/incubator/foreign/MemoryLayout;
5 8 7 elemSize J
MethodParameters:
Name Flags
start
step
public jdk.internal.foreign.LayoutPath sequenceElement(long);
descriptor: (J)Ljdk/internal/foreign/LayoutPath;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 0
ldc Ljdk/incubator/foreign/SequenceLayout;
ldc "attempting to select a sequence element from a non-sequence layout"
invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
1: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.SequenceLayout
astore 3
start local 3 2: aload 0
aload 3
lload 1
invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
3: lconst_0
lstore 4
start local 4 4: lload 1
lconst_0
lcmp
ifle 7
5: aload 0
getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
aload 3
invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
lstore 6
start local 6 6: lload 6
lload 1
lmul
lstore 4
end local 6 7: StackMap locals: jdk.incubator.foreign.SequenceLayout long
StackMap stack:
aload 3
invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
lload 4
ladd
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
lload 1
aload 0
invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/foreign/LayoutPath;
0 8 1 index J
2 8 3 seq Ljdk/incubator/foreign/SequenceLayout;
4 8 4 elemOffset J
6 7 6 elemSize J
MethodParameters:
Name Flags
index
public jdk.internal.foreign.LayoutPath groupElement(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/internal/foreign/LayoutPath;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 0
ldc Ljdk/incubator/foreign/GroupLayout;
ldc "attempting to select a group element from a non-group layout"
invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
1: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.GroupLayout
astore 2
start local 2 2: lconst_0
lstore 3
start local 3 3: aconst_null
astore 5
start local 5 4: iconst_m1
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 16
7: StackMap locals: jdk.internal.foreign.LayoutPath java.lang.String jdk.incubator.foreign.GroupLayout long jdk.incubator.foreign.MemoryLayout int int
StackMap stack:
aload 2
invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast jdk.incubator.foreign.MemoryLayout
astore 8
start local 8 8: aload 8
invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 13
9: aload 8
invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
10: aload 8
astore 5
11: iload 7
istore 6
12: goto 17
13: StackMap locals: jdk.incubator.foreign.MemoryLayout
StackMap stack:
aload 2
invokevirtual jdk.incubator.foreign.GroupLayout.isStruct:()Z
ifeq 15
14: lload 3
aload 0
getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
aload 8
invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
ladd
lstore 3
end local 8 15: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
aload 2
invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 7
end local 7 17: StackMap locals:
StackMap stack:
aload 5
ifnonnull 19
18: new java.lang.StringBuilder
dup
ldc "cannot resolve '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' in layout "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
19: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
lload 3
ladd
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
iload 6
i2l
aload 0
invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
areturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/foreign/LayoutPath;
0 20 1 name Ljava/lang/String;
2 20 2 g Ljdk/incubator/foreign/GroupLayout;
3 20 3 offset J
4 20 5 elem Ljdk/incubator/foreign/MemoryLayout;
5 20 6 index I
6 17 7 i I
8 15 8 l Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
name
public long offset();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
public java.lang.invoke.VarHandle dereferenceHandle(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=6, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokestatic jdk.internal.foreign.Utils.checkPrimitiveCarrierCompat:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)V
1: aload 0
invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 3
start local 3 4: aload 3
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
5: aload 2
ldc Ljdk/incubator/foreign/MemorySegment;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: getstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
aload 1
iconst_1
aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokeinterface jdk.incubator.foreign.MemoryLayout.byteAlignment:()J
lconst_1
lsub
7: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
invokevirtual jdk.incubator.foreign.ValueLayout.order:()Ljava/nio/ByteOrder;
8: invokeinterface jdk.internal.access.JavaLangInvokeAccess.memoryAccessVarHandle:(Ljava/lang/Class;ZJLjava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
invokestatic jdk.internal.foreign.Utils.fixUpVarHandle:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
astore 4
start local 4 9: iconst_0
istore 5
start local 5 10: goto 18
11: StackMap locals: jdk.internal.foreign.LayoutPath java.lang.Class java.util.List java.util.Deque java.lang.invoke.VarHandle int
StackMap stack:
aload 2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 3
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
13: aload 3
iload 5
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
14: aload 4
iconst_1
iload 5
iadd
15: getstatic jdk.internal.foreign.LayoutPath.ADD_STRIDE:Ljava/lang/invoke/MethodHandle;
iconst_1
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
iconst_1
isub
iload 5
isub
laload
invokedynamic get()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;
java/lang/IllegalStateException.<init>()V (8)
()Ljava/lang/RuntimeException;
invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
16: invokestatic jdk.incubator.foreign.MemoryHandles.collectCoordinates:(Ljava/lang/invoke/VarHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
astore 4
17: iinc 5 1
StackMap locals:
StackMap stack:
18: iload 5
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
if_icmplt 11
end local 5 19: aload 4
iconst_1
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
iadd
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
invokedynamic get()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;
java/lang/IllegalStateException.<init>()V (8)
()Ljava/lang/RuntimeException;
invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic jdk.incubator.foreign.MemoryHandles.insertCoordinates:(Ljava/lang/invoke/VarHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/VarHandle;
astore 4
20: aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
ifle 22
21: aload 4
aload 2
aload 3
invokeinterface java.util.Deque.stream:()Ljava/util/stream/Stream;
invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
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;)I
jdk/internal/foreign/LayoutPath.lambda$2(Ljava/lang/Integer;)I (6)
(Ljava/lang/Integer;)I
invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
invokeinterface java.util.stream.IntStream.toArray:()[I
invokestatic jdk.incubator.foreign.MemoryHandles.permuteCoordinates:(Ljava/lang/invoke/VarHandle;Ljava/util/List;[I)Ljava/lang/invoke/VarHandle;
astore 4
22: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/internal/foreign/LayoutPath;
0 23 1 carrier Ljava/lang/Class<*>;
3 23 2 expectedCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
4 23 3 perms Ljava/util/Deque<Ljava/lang/Integer;>;
9 23 4 handle Ljava/lang/invoke/VarHandle;
10 19 5 i I
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
carrier
private static long addScaledOffset(long, long, long);
descriptor: (JJJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 2 start local 4 0: lload 0
lload 4
lload 2
lmul
ladd
lreturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 base J
0 1 2 index J
0 1 4 stride J
MethodParameters:
Name Flags
base
index
stride
public java.lang.invoke.MethodHandle offsetHandle();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 1
start local 1 1: aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
iconst_1
isub
istore 2
start local 2 2: goto 6
3: StackMap locals: java.lang.invoke.MethodHandle int
StackMap stack:
getstatic jdk.internal.foreign.LayoutPath.MH_ADD_SCALED_OFFSET:Ljava/lang/invoke/MethodHandle;
iconst_2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
iload 2
laload
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 3
start local 3 4: aload 1
iconst_0
aload 3
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 1
end local 3 5: iinc 2 -1
StackMap locals:
StackMap stack:
6: iload 2
ifge 3
end local 2 7: aload 1
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 1
8: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/foreign/LayoutPath;
1 9 1 mh Ljava/lang/invoke/MethodHandle;
2 7 2 i I
4 5 3 collector Ljava/lang/invoke/MethodHandle;
public jdk.incubator.foreign.MemoryLayout layout();
descriptor: ()Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
public jdk.incubator.foreign.MemoryLayout map(java.util.function.UnaryOperator<jdk.incubator.foreign.MemoryLayout>);
descriptor: (Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.incubator.foreign.MemoryLayout
astore 2
start local 2 1: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
ifnonnull 3
2: aload 2
areturn
3: StackMap locals: jdk.incubator.foreign.MemoryLayout
StackMap stack:
aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
instanceof jdk.incubator.foreign.SequenceLayout
ifeq 8
4: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.SequenceLayout
astore 3
start local 3 5: aload 3
invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.isPresent:()Z
ifeq 7
6: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
aload 0
aload 3
aload 2
invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
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;)Ljava/lang/Object;
jdk/internal/foreign/LayoutPath.lambda$3(Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
areturn
7: StackMap locals: jdk.incubator.foreign.SequenceLayout
StackMap stack:
aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
aload 0
aload 2
invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
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;)Ljava/lang/Object;
jdk/internal/foreign/LayoutPath.lambda$4(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 3 8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
instanceof jdk.incubator.foreign.GroupLayout
ifeq 15
9: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.GroupLayout
astore 3
start local 3 10: new java.util.ArrayList
dup
aload 3
invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 11: aload 4
aload 0
getfield jdk.internal.foreign.LayoutPath.elementIndex:J
l2i
aload 2
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
12: aload 3
invokevirtual jdk.incubator.foreign.GroupLayout.isUnion:()Z
ifeq 14
13: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
aload 0
aload 4
invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
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;)Ljava/lang/Object;
jdk/internal/foreign/LayoutPath.lambda$5(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
areturn
14: StackMap locals: jdk.incubator.foreign.GroupLayout java.util.List
StackMap stack:
aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
aload 0
aload 4
invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
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;)Ljava/lang/Object;
jdk/internal/foreign/LayoutPath.lambda$6(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 4 end local 3 15: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/internal/foreign/LayoutPath;
0 16 1 op Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;
1 16 2 newLayout Ljdk/incubator/foreign/MemoryLayout;
5 8 3 seq Ljdk/incubator/foreign/SequenceLayout;
10 15 3 g Ljdk/incubator/foreign/GroupLayout;
11 15 4 newElements Ljava/util/List<Ljdk/incubator/foreign/MemoryLayout;>;
Signature: (Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
op
private jdk.incubator.foreign.MemoryLayout dup(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
invokeinterface jdk.incubator.foreign.MemoryLayout.withBitAlignment:(J)Ljdk/incubator/foreign/MemoryLayout;
astore 2
1: aload 1
invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 3
2: aload 2
aload 1
invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
invokeinterface jdk.incubator.foreign.MemoryLayout.withName:(Ljava/lang/String;)Ljdk/incubator/foreign/MemoryLayout;
pop
3: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/foreign/LayoutPath;
0 4 1 oldLayout Ljdk/incubator/foreign/MemoryLayout;
0 4 2 newLayout Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
oldLayout
newLayout
public static jdk.internal.foreign.LayoutPath rootPath(jdk.incubator.foreign.MemoryLayout, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=2, args_size=2
start local 0 start local 1 0: new jdk.internal.foreign.LayoutPath
dup
aload 0
lconst_0
getstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
ldc -1
aconst_null
aload 1
invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 layout Ljdk/incubator/foreign/MemoryLayout;
0 1 1 sizeFunc Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
Signature: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/internal/foreign/LayoutPath;
MethodParameters:
Name Flags
layout
sizeFunc
private static jdk.internal.foreign.LayoutPath nestedPath(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 6 0: new jdk.internal.foreign.LayoutPath
dup
aload 0
lload 1
aload 3
lload 4
aload 6
aload 6
getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
areturn
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 layout Ljdk/incubator/foreign/MemoryLayout;
0 1 1 offset J
0 1 3 strides [J
0 1 4 elementIndex J
0 1 6 encl Ljdk/internal/foreign/LayoutPath;
MethodParameters:
Name Flags
layout
offset
strides
elementIndex
encl
private void check(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
1: aload 2
invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/foreign/LayoutPath;
0 3 1 layoutClass Ljava/lang/Class<*>;
0 3 2 msg Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
layoutClass
msg
private void checkSequenceBounds(jdk.incubator.foreign.SequenceLayout, long);
descriptor: (Ljdk/incubator/foreign/SequenceLayout;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.isPresent:()Z
ifeq 2
lload 2
aload 1
invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.getAsLong:()J
lcmp
iflt 2
1: ldc "Sequence index out of bound; found: %d, size: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
aload 1
invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.getAsLong:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/foreign/LayoutPath;
0 3 1 seq Ljdk/incubator/foreign/SequenceLayout;
0 3 2 index J
MethodParameters:
Name Flags
seq
index
private static java.lang.IllegalArgumentException badLayoutPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Bad layout path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 cause Ljava/lang/String;
MethodParameters:
Name Flags
cause
private static void checkAlignment(jdk.internal.foreign.LayoutPath);
descriptor: (Ljdk/internal/foreign/LayoutPath;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
astore 1
start local 1 1: aload 1
invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
lstore 2
start local 2 2: aload 0
getfield jdk.internal.foreign.LayoutPath.offset:J
lload 2
lrem
lconst_0
lcmp
ifeq 4
3: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Invalid alignment requirements for layout "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: jdk.incubator.foreign.MemoryLayout long
StackMap stack:
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 9
StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long top top int int long[]
StackMap stack:
5: aload 8
iload 6
laload
lstore 4
start local 4 6: lload 4
lload 2
lrem
lconst_0
lcmp
ifeq 8
7: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Alignment requirements for layout "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " do not match stride "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 4 8: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
iload 7
if_icmplt 5
10: aload 0
getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
astore 4
start local 4 11: aload 4
ifnull 15
12: aload 4
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
lload 2
lcmp
ifge 14
13: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Alignment requirements for layout "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " do not match those for enclosing layout "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long jdk.internal.foreign.LayoutPath
StackMap stack:
aload 4
invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
15: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 path Ljdk/internal/foreign/LayoutPath;
1 16 1 layout Ljdk/incubator/foreign/MemoryLayout;
2 16 2 alignment J
6 8 4 stride J
11 16 4 encl Ljdk/internal/foreign/LayoutPath;
MethodParameters:
Name Flags
path
private long[] addStride(long);
descriptor: (J)[J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
iconst_1
iadd
newarray 11
astore 3
start local 3 1: aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
iconst_0
aload 3
iconst_0
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 3
aload 0
getfield jdk.internal.foreign.LayoutPath.strides:[J
arraylength
lload 1
lastore
3: aload 3
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/foreign/LayoutPath;
0 4 1 stride J
1 4 3 newStrides [J
MethodParameters:
Name Flags
stride
private static long addStride(jdk.incubator.foreign.MemorySegment, long, long, long);
descriptor: (Ljdk/incubator/foreign/MemorySegment;JJJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 5 0: lload 3
1: lload 1
lload 5
aload 0
checkcast jdk.internal.access.foreign.MemorySegmentProxy
invokestatic jdk.internal.access.foreign.MemorySegmentProxy.multiplyOffsets:(JJLjdk/internal/access/foreign/MemorySegmentProxy;)J
aload 0
checkcast jdk.internal.access.foreign.MemorySegmentProxy
2: invokestatic jdk.internal.access.foreign.MemorySegmentProxy.addOffsets:(JJLjdk/internal/access/foreign/MemorySegmentProxy;)J
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 segment Ljdk/incubator/foreign/MemorySegment;
0 3 1 stride J
0 3 3 base J
0 3 5 index J
MethodParameters:
Name Flags
segment
stride
base
index
private static int lambda$2(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 i Ljava/lang/Integer;
private jdk.incubator.foreign.MemoryLayout lambda$3(jdk.incubator.foreign.SequenceLayout, jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 3
aload 1
invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
invokevirtual java.util.OptionalLong.getAsLong:()J
aload 2
invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(JLjdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
0 1 3 l Ljdk/incubator/foreign/MemoryLayout;
private jdk.incubator.foreign.MemoryLayout lambda$4(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 2
aload 1
invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
0 1 2 l Ljdk/incubator/foreign/MemoryLayout;
private jdk.incubator.foreign.MemoryLayout lambda$5(java.util.List, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 2
aload 1
iconst_0
anewarray jdk.incubator.foreign.MemoryLayout
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast jdk.incubator.foreign.MemoryLayout[]
invokestatic jdk.incubator.foreign.MemoryLayout.ofUnion:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
0 1 2 l Ljdk/incubator/foreign/MemoryLayout;
private jdk.incubator.foreign.MemoryLayout lambda$6(java.util.List, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 2
aload 1
iconst_0
anewarray jdk.incubator.foreign.MemoryLayout
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast jdk.incubator.foreign.MemoryLayout[]
invokestatic jdk.incubator.foreign.MemoryLayout.ofStruct:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/LayoutPath;
0 1 2 l Ljdk/incubator/foreign/MemoryLayout;
}
SourceFile: "LayoutPath.java"
NestMembers:
jdk.internal.foreign.LayoutPath$PathElementImpl jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public PathElementImpl = jdk.internal.foreign.LayoutPath$PathElementImpl of jdk.internal.foreign.LayoutPath