public class jdk.internal.foreign.abi.BindingInterpreter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.abi.BindingInterpreter
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.BindingInterpreter this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.foreign.abi.BindingInterpreter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/BindingInterpreter;

  static void unbox(, java.util.List<jdk.internal.foreign.abi.Binding>, jdk.internal.foreign.abi.BindingInterpreter$StoreFunc, jdk.internal.foreign.abi.SharedUtils$Allocator);
    descriptor: (Ljava/lang/Object;Ljava/util/List;Ljdk/internal/foreign/abi/BindingInterpreter$StoreFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.lang.Object arg
        start local 1 // java.util.List bindings
        start local 2 // jdk.internal.foreign.abi.BindingInterpreter$StoreFunc storeFunc
        start local 3 // jdk.internal.foreign.abi.SharedUtils$Allocator allocator
         0: .line 34
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* stack */
        start local 4 // java.util.Deque stack
         1: .line 36
            aload 4 /* stack */
            aload 0 /* arg */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         2: .line 37
            aload 1 /* bindings */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: java.lang.Object java.util.List jdk.internal.foreign.abi.BindingInterpreter$StoreFunc jdk.internal.foreign.abi.SharedUtils$Allocator java.util.Deque top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.foreign.abi.Binding
            astore 5 /* b */
        start local 5 // jdk.internal.foreign.abi.Binding b
         4: .line 38
            aload 5 /* b */
            aload 4 /* stack */
            aload 2 /* storeFunc */
            aconst_null
            aload 3 /* allocator */
            invokevirtual jdk.internal.foreign.abi.Binding.interpret:(Ljava/util/Deque;Ljdk/internal/foreign/abi/BindingInterpreter$StoreFunc;Ljdk/internal/foreign/abi/BindingInterpreter$LoadFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)V
        end local 5 // jdk.internal.foreign.abi.Binding b
         5: .line 37
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 40
            return
        end local 4 // java.util.Deque stack
        end local 3 // jdk.internal.foreign.abi.SharedUtils$Allocator allocator
        end local 2 // jdk.internal.foreign.abi.BindingInterpreter$StoreFunc storeFunc
        end local 1 // java.util.List bindings
        end local 0 // java.lang.Object arg
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0        arg  Ljava/lang/Object;
            0    7     1   bindings  Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
            0    7     2  storeFunc  Ljdk/internal/foreign/abi/BindingInterpreter$StoreFunc;
            0    7     3  allocator  Ljdk/internal/foreign/abi/SharedUtils$Allocator;
            1    7     4      stack  Ljava/util/Deque<Ljava/lang/Object;>;
            4    5     5          b  Ljdk/internal/foreign/abi/Binding;
    Signature: (Ljava/lang/Object;Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;Ljdk/internal/foreign/abi/BindingInterpreter$StoreFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)V
    MethodParameters:
           Name  Flags
      arg        
      bindings   
      storeFunc  
      allocator  

  static  box(java.util.List<jdk.internal.foreign.abi.Binding>, jdk.internal.foreign.abi.BindingInterpreter$LoadFunc, jdk.internal.foreign.abi.SharedUtils$Allocator);
    descriptor: (Ljava/util/List;Ljdk/internal/foreign/abi/BindingInterpreter$LoadFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.List bindings
        start local 1 // jdk.internal.foreign.abi.BindingInterpreter$LoadFunc loadFunc
        start local 2 // jdk.internal.foreign.abi.SharedUtils$Allocator allocator
         0: .line 43
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 3 /* stack */
        start local 3 // java.util.Deque stack
         1: .line 44
            aload 0 /* bindings */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: java.util.List jdk.internal.foreign.abi.BindingInterpreter$LoadFunc jdk.internal.foreign.abi.SharedUtils$Allocator java.util.Deque top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.foreign.abi.Binding
            astore 4 /* b */
        start local 4 // jdk.internal.foreign.abi.Binding b
         3: .line 45
            aload 4 /* b */
            aload 3 /* stack */
            aconst_null
            aload 1 /* loadFunc */
            aload 2 /* allocator */
            invokevirtual jdk.internal.foreign.abi.Binding.interpret:(Ljava/util/Deque;Ljdk/internal/foreign/abi/BindingInterpreter$StoreFunc;Ljdk/internal/foreign/abi/BindingInterpreter$LoadFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)V
        end local 4 // jdk.internal.foreign.abi.Binding b
         4: .line 44
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 47
            aload 3 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            areturn
        end local 3 // java.util.Deque stack
        end local 2 // jdk.internal.foreign.abi.SharedUtils$Allocator allocator
        end local 1 // jdk.internal.foreign.abi.BindingInterpreter$LoadFunc loadFunc
        end local 0 // java.util.List bindings
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0   bindings  Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
            0    6     1   loadFunc  Ljdk/internal/foreign/abi/BindingInterpreter$LoadFunc;
            0    6     2  allocator  Ljdk/internal/foreign/abi/SharedUtils$Allocator;
            1    6     3      stack  Ljava/util/Deque<Ljava/lang/Object;>;
            3    4     4          b  Ljdk/internal/foreign/abi/Binding;
    Signature: (Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;Ljdk/internal/foreign/abi/BindingInterpreter$LoadFunc;Ljdk/internal/foreign/abi/SharedUtils$Allocator;)Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      bindings   
      loadFunc   
      allocator  
}
SourceFile: "BindingInterpreter.java"
NestMembers:
  jdk.internal.foreign.abi.BindingInterpreter$LoadFunc  jdk.internal.foreign.abi.BindingInterpreter$StoreFunc
InnerClasses:
  abstract LoadFunc = jdk.internal.foreign.abi.BindingInterpreter$LoadFunc of jdk.internal.foreign.abi.BindingInterpreter
  abstract StoreFunc = jdk.internal.foreign.abi.BindingInterpreter$StoreFunc of jdk.internal.foreign.abi.BindingInterpreter
  public abstract Allocator = jdk.internal.foreign.abi.SharedUtils$Allocator of jdk.internal.foreign.abi.SharedUtils