class jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper
super_class: java.lang.Object
{
final jdk.internal.foreign.abi.CallingSequenceBuilder csb;
descriptor: Ljdk/internal/foreign/abi/CallingSequenceBuilder;
flags: (0x0010) ACC_FINAL
final jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator argCalc;
descriptor: Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
flags: (0x0010) ACC_FINAL
final jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator retCalc;
descriptor: Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
flags: (0x0010) ACC_FINAL
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
0: .line 89
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 90
aload 0 /* this */
new jdk.internal.foreign.abi.CallingSequenceBuilder
dup
iload 1
invokespecial jdk.internal.foreign.abi.CallingSequenceBuilder.<init>:(Z)V
putfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.csb:Ljdk/internal/foreign/abi/CallingSequenceBuilder;
2: .line 91
aload 0 /* this */
3: .line 92
iload 1
ifeq 4
new jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator
dup
iconst_1
invokespecial jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.<init>:(Z)V
goto 5
StackMap locals: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper int
StackMap stack: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper
4: new jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator
dup
iconst_1
invokespecial jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.<init>:(Z)V
StackMap locals: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper int
StackMap stack: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator
5: putfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.argCalc:Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
6: .line 93
aload 0 /* this */
7: .line 94
iload 1
ifeq 8
new jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator
dup
iconst_0
invokespecial jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.<init>:(Z)V
goto 9
StackMap locals:
StackMap stack: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper
8: new jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator
dup
iconst_0
invokespecial jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.<init>:(Z)V
StackMap locals: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper int
StackMap stack: jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator
9: putfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.retCalc:Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
10: .line 89
return
end local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$1CallingSequenceBuilderHelper;
MethodParameters:
Name Flags
val$forUpcall final
void addArgumentBindings(java.lang.Class<?>, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
start local 1 // java.lang.Class carrier
start local 2 // jdk.incubator.foreign.MemoryLayout layout
0: .line 97
aload 0 /* this */
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.csb:Ljdk/internal/foreign/abi/CallingSequenceBuilder;
aload 1 /* carrier */
aload 2 /* layout */
aload 0 /* this */
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.argCalc:Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
aload 1 /* carrier */
aload 2 /* layout */
invokeinterface jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator.getBindings:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/List;
invokevirtual jdk.internal.foreign.abi.CallingSequenceBuilder.addArgumentBindings:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;Ljava/util/List;)Ljdk/internal/foreign/abi/CallingSequenceBuilder;
pop
1: .line 98
return
end local 2 // jdk.incubator.foreign.MemoryLayout layout
end local 1 // java.lang.Class carrier
end local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$1CallingSequenceBuilderHelper;
0 2 1 carrier Ljava/lang/Class<*>;
0 2 2 layout Ljdk/incubator/foreign/MemoryLayout;
Signature: (Ljava/lang/Class<*>;Ljdk/incubator/foreign/MemoryLayout;)V
MethodParameters:
Name Flags
carrier
layout
void setReturnBindings(java.lang.Class<?>, jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
start local 1 // java.lang.Class carrier
start local 2 // jdk.incubator.foreign.MemoryLayout layout
0: .line 101
aload 0 /* this */
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.csb:Ljdk/internal/foreign/abi/CallingSequenceBuilder;
aload 1 /* carrier */
aload 2 /* layout */
aload 0 /* this */
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper.retCalc:Ljdk/internal/foreign/abi/x64/windows/CallArranger$BindingCalculator;
aload 1 /* carrier */
aload 2 /* layout */
invokeinterface jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator.getBindings:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/List;
invokevirtual jdk.internal.foreign.abi.CallingSequenceBuilder.setReturnBindings:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;Ljava/util/List;)Ljdk/internal/foreign/abi/CallingSequenceBuilder;
pop
1: .line 102
return
end local 2 // jdk.incubator.foreign.MemoryLayout layout
end local 1 // java.lang.Class carrier
end local 0 // jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$1CallingSequenceBuilderHelper;
0 2 1 carrier Ljava/lang/Class<*>;
0 2 2 layout Ljdk/incubator/foreign/MemoryLayout;
Signature: (Ljava/lang/Class<*>;Ljdk/incubator/foreign/MemoryLayout;)V
MethodParameters:
Name Flags
carrier
layout
}
SourceFile: "CallArranger.java"
EnclosingMethod: jdk.internal.foreign.abi.x64.windows.CallArranger.getBindings:(Ljava/lang/invoke/MethodType;Ljdk/incubator/foreign/FunctionDescriptor;Z)Ljdk/internal/foreign/abi/x64/windows/CallArranger$Bindings;
NestHost: jdk.internal.foreign.abi.x64.windows.CallArranger
InnerClasses:
CallingSequenceBuilderHelper = jdk.internal.foreign.abi.x64.windows.CallArranger$1CallingSequenceBuilderHelper
private abstract BindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger
public Bindings = jdk.internal.foreign.abi.x64.windows.CallArranger$Bindings of jdk.internal.foreign.abi.x64.windows.CallArranger
BoxBindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger
UnboxBindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger