public class jdk.dynalink.linker.GuardedInvocation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.dynalink.linker.GuardedInvocation
  super_class: java.lang.Object
{
  private final java.lang.invoke.MethodHandle invocation;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.invoke.MethodHandle guard;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<? extends java.lang.Throwable> exception;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+Ljava/lang/Throwable;>;

  private final java.lang.invoke.SwitchPoint[] switchPoints;
    descriptor: [Ljava/lang/invoke/SwitchPoint;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
         0: .line 105
            aload 0 /* this */
            aload 1 /* invocation */
            aconst_null
            aconst_null
            aconst_null
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
         1: .line 106
            return
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/dynalink/linker/GuardedInvocation;
            0    2     1  invocation  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      invocation  final

  public void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
        start local 2 // java.lang.invoke.MethodHandle guard
         0: .line 121
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* guard */
            aconst_null
            aconst_null
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
         1: .line 122
            return
        end local 2 // java.lang.invoke.MethodHandle guard
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/dynalink/linker/GuardedInvocation;
            0    2     1  invocation  Ljava/lang/invoke/MethodHandle;
            0    2     2       guard  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      invocation  final
      guard       final

  public void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
        start local 2 // java.lang.invoke.SwitchPoint switchPoint
         0: .line 136
            aload 0 /* this */
            aload 1 /* invocation */
            aconst_null
            aload 2 /* switchPoint */
            aconst_null
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
         1: .line 137
            return
        end local 2 // java.lang.invoke.SwitchPoint switchPoint
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljdk/dynalink/linker/GuardedInvocation;
            0    2     1   invocation  Ljava/lang/invoke/MethodHandle;
            0    2     2  switchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
             Name  Flags
      invocation   final
      switchPoint  final

  public void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
        start local 2 // java.lang.invoke.MethodHandle guard
        start local 3 // java.lang.invoke.SwitchPoint switchPoint
         0: .line 156
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* guard */
            aload 3 /* switchPoint */
            aconst_null
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
         1: .line 157
            return
        end local 3 // java.lang.invoke.SwitchPoint switchPoint
        end local 2 // java.lang.invoke.MethodHandle guard
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljdk/dynalink/linker/GuardedInvocation;
            0    2     1   invocation  Ljava/lang/invoke/MethodHandle;
            0    2     2        guard  Ljava/lang/invoke/MethodHandle;
            0    2     3  switchPoint  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
             Name  Flags
      invocation   final
      guard        final
      switchPoint  final

  public void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.SwitchPoint, java.lang.Class<? extends java.lang.Throwable>);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
        start local 2 // java.lang.invoke.MethodHandle guard
        start local 3 // java.lang.invoke.SwitchPoint switchPoint
        start local 4 // java.lang.Class exception
         0: .line 178
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 179
            aload 0 /* this */
            aload 1 /* invocation */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            putfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
         2: .line 180
            aload 0 /* this */
            aload 2 /* guard */
            putfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
         3: .line 181
            aload 0 /* this */
            aload 3 /* switchPoint */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint java.lang.Class
      StackMap stack: jdk.dynalink.linker.GuardedInvocation
         4: iconst_1
            anewarray java.lang.invoke.SwitchPoint
            dup
            iconst_0
            aload 3 /* switchPoint */
            aastore
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint java.lang.Class
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.SwitchPoint[]
         5: putfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
         6: .line 182
            aload 4 /* exception */
            ifnull 8
            ldc Ljava/lang/Throwable;
            aload 4 /* exception */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         7: .line 183
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* exception */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not assignable from Throwable"
            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
            athrow
         8: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* exception */
            putfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
         9: .line 186
            return
        end local 4 // java.lang.Class exception
        end local 3 // java.lang.invoke.SwitchPoint switchPoint
        end local 2 // java.lang.invoke.MethodHandle guard
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Ljdk/dynalink/linker/GuardedInvocation;
            0   10     1   invocation  Ljava/lang/invoke/MethodHandle;
            0   10     2        guard  Ljava/lang/invoke/MethodHandle;
            0   10     3  switchPoint  Ljava/lang/invoke/SwitchPoint;
            0   10     4    exception  Ljava/lang/Class<+Ljava/lang/Throwable;>;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class<+Ljava/lang/Throwable;>;)V
    MethodParameters:
             Name  Flags
      invocation   final
      guard        final
      switchPoint  final
      exception    final

  public void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.SwitchPoint[], java.lang.Class<? extends java.lang.Throwable>);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle invocation
        start local 2 // java.lang.invoke.MethodHandle guard
        start local 3 // java.lang.invoke.SwitchPoint[] switchPoints
        start local 4 // java.lang.Class exception
         0: .line 207
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 208
            aload 0 /* this */
            aload 1 /* invocation */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            putfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
         2: .line 209
            aload 0 /* this */
            aload 2 /* guard */
            putfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
         3: .line 210
            aload 0 /* this */
            aload 3 /* switchPoints */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint[] java.lang.Class
      StackMap stack: jdk.dynalink.linker.GuardedInvocation
         4: aload 3 /* switchPoints */
            invokevirtual java.lang.invoke.SwitchPoint[].clone:()Ljava/lang/Object;
            checkcast java.lang.invoke.SwitchPoint[]
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint[] java.lang.Class
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.SwitchPoint[]
         5: putfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
         6: .line 211
            aload 4 /* exception */
            ifnull 8
            ldc Ljava/lang/Throwable;
            aload 4 /* exception */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         7: .line 212
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* exception */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not assignable from Throwable"
            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
            athrow
         8: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* exception */
            putfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
         9: .line 215
            return
        end local 4 // java.lang.Class exception
        end local 3 // java.lang.invoke.SwitchPoint[] switchPoints
        end local 2 // java.lang.invoke.MethodHandle guard
        end local 1 // java.lang.invoke.MethodHandle invocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljdk/dynalink/linker/GuardedInvocation;
            0   10     1    invocation  Ljava/lang/invoke/MethodHandle;
            0   10     2         guard  Ljava/lang/invoke/MethodHandle;
            0   10     3  switchPoints  [Ljava/lang/invoke/SwitchPoint;
            0   10     4     exception  Ljava/lang/Class<+Ljava/lang/Throwable;>;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class<+Ljava/lang/Throwable;>;)V
    MethodParameters:
              Name  Flags
      invocation    final
      guard         final
      switchPoints  final
      exception     final

  public java.lang.invoke.MethodHandle getInvocation();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
         0: .line 223
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/dynalink/linker/GuardedInvocation;

  public java.lang.invoke.MethodHandle getGuard();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
         0: .line 232
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/dynalink/linker/GuardedInvocation;

  public java.lang.invoke.SwitchPoint[] getSwitchPoints();
    descriptor: ()[Ljava/lang/invoke/SwitchPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
         0: .line 243
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            invokevirtual java.lang.invoke.SwitchPoint[].clone:()Ljava/lang/Object;
            checkcast java.lang.invoke.SwitchPoint[]
      StackMap locals:
      StackMap stack: java.lang.invoke.SwitchPoint[]
         2: areturn
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/dynalink/linker/GuardedInvocation;

  public java.lang.Class<? extends java.lang.Throwable> getException();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
         0: .line 254
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
            areturn
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/dynalink/linker/GuardedInvocation;
    Signature: ()Ljava/lang/Class<+Ljava/lang/Throwable;>;

  public boolean hasBeenInvalidated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
         0: .line 264
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            ifnonnull 2
         1: .line 265
            iconst_0
            ireturn
         2: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 7
      StackMap locals: jdk.dynalink.linker.GuardedInvocation top int int java.lang.invoke.SwitchPoint[]
      StackMap stack:
         3: aload 4
            iload 2
            aaload
            astore 1 /* sp */
        start local 1 // java.lang.invoke.SwitchPoint sp
         4: .line 268
            aload 1 /* sp */
            invokevirtual java.lang.invoke.SwitchPoint.hasBeenInvalidated:()Z
            ifeq 6
         5: .line 269
            iconst_1
            ireturn
        end local 1 // java.lang.invoke.SwitchPoint sp
         6: .line 267
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         7: iload 2
            iload 3
            if_icmplt 3
         8: .line 272
            iconst_0
            ireturn
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/dynalink/linker/GuardedInvocation;
            4    6     1    sp  Ljava/lang/invoke/SwitchPoint;

  public jdk.dynalink.linker.GuardedInvocation replaceMethods(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle newInvocation
        start local 2 // java.lang.invoke.MethodHandle newGuard
         0: .line 283
            new jdk.dynalink.linker.GuardedInvocation
            dup
            aload 1 /* newInvocation */
            aload 2 /* newGuard */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
            areturn
        end local 2 // java.lang.invoke.MethodHandle newGuard
        end local 1 // java.lang.invoke.MethodHandle newInvocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Ljdk/dynalink/linker/GuardedInvocation;
            0    1     1  newInvocation  Ljava/lang/invoke/MethodHandle;
            0    1     2       newGuard  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      newInvocation  final
      newGuard       final

  public jdk.dynalink.linker.GuardedInvocation addSwitchPoint(java.lang.invoke.SwitchPoint);
    descriptor: (Ljava/lang/invoke/SwitchPoint;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.SwitchPoint newSwitchPoint
         0: .line 293
            aload 1 /* newSwitchPoint */
            ifnonnull 2
         1: .line 294
            aload 0 /* this */
            areturn
         2: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            ifnull 7
         3: .line 299
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            arraylength
            iconst_1
            iadd
            anewarray java.lang.invoke.SwitchPoint
            astore 2 /* newSwitchPoints */
        start local 2 // java.lang.invoke.SwitchPoint[] newSwitchPoints
         4: .line 300
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            iconst_0
            aload 2 /* newSwitchPoints */
            iconst_0
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 301
            aload 2 /* newSwitchPoints */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            arraylength
            aload 1 /* newSwitchPoint */
            aastore
         6: .line 302
            goto 8
        end local 2 // java.lang.invoke.SwitchPoint[] newSwitchPoints
         7: .line 303
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.invoke.SwitchPoint
            dup
            iconst_0
            aload 1 /* newSwitchPoint */
            aastore
            astore 2 /* newSwitchPoints */
        start local 2 // java.lang.invoke.SwitchPoint[] newSwitchPoints
         8: .line 306
      StackMap locals: java.lang.invoke.SwitchPoint[]
      StackMap stack:
            new jdk.dynalink.linker.GuardedInvocation
            dup
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            aload 2 /* newSwitchPoints */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
            invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[Ljava/lang/invoke/SwitchPoint;Ljava/lang/Class;)V
            areturn
        end local 2 // java.lang.invoke.SwitchPoint[] newSwitchPoints
        end local 1 // java.lang.invoke.SwitchPoint newSwitchPoint
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Ljdk/dynalink/linker/GuardedInvocation;
            0    9     1   newSwitchPoint  Ljava/lang/invoke/SwitchPoint;
            4    7     2  newSwitchPoints  [Ljava/lang/invoke/SwitchPoint;
            8    9     2  newSwitchPoints  [Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                Name  Flags
      newSwitchPoint  final

  private jdk.dynalink.linker.GuardedInvocation replaceMethodsOrThis(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle newInvocation
        start local 2 // java.lang.invoke.MethodHandle newGuard
         0: .line 310
            aload 1 /* newInvocation */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            if_acmpne 2
            aload 2 /* newGuard */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            if_acmpne 2
         1: .line 311
            aload 0 /* this */
            areturn
         2: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newInvocation */
            aload 2 /* newGuard */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.lang.invoke.MethodHandle newGuard
        end local 1 // java.lang.invoke.MethodHandle newInvocation
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1  newInvocation  Ljava/lang/invoke/MethodHandle;
            0    3     2       newGuard  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      newInvocation  final
      newGuard       final

  public jdk.dynalink.linker.GuardedInvocation asType(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodType newType
         0: .line 326
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
         1: aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            aload 1 /* newType */
            invokestatic jdk.dynalink.linker.support.Guards.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
         2: invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethodsOrThis:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1  newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      newType  final

  public jdk.dynalink.linker.GuardedInvocation asType(jdk.dynalink.linker.LinkerServices, java.lang.invoke.MethodType);
    descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 2 // java.lang.invoke.MethodType newType
         0: .line 340
            aload 0 /* this */
            aload 1 /* linkerServices */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            aload 2 /* newType */
            invokeinterface jdk.dynalink.linker.LinkerServices.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnonnull 1
            aconst_null
            goto 2
         1: .line 341
      StackMap locals: jdk.dynalink.linker.GuardedInvocation jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
            aload 1 /* linkerServices */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            aload 2 /* newType */
            invokestatic jdk.dynalink.linker.support.Guards.asType:(Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         2: .line 340
      StackMap locals: jdk.dynalink.linker.GuardedInvocation jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethodsOrThis:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.lang.invoke.MethodType newType
        end local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    3     2         newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
                Name  Flags
      linkerServices  final
      newType         final

  public jdk.dynalink.linker.GuardedInvocation asTypeSafeReturn(jdk.dynalink.linker.LinkerServices, java.lang.invoke.MethodType);
    descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 2 // java.lang.invoke.MethodType newType
         0: .line 357
            aload 0 /* this */
            aload 1 /* linkerServices */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            aload 2 /* newType */
            invokeinterface jdk.dynalink.linker.LinkerServices.asTypeLosslessReturn:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnonnull 1
            aconst_null
            goto 2
         1: .line 358
      StackMap locals: jdk.dynalink.linker.GuardedInvocation jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
            aload 1 /* linkerServices */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            aload 2 /* newType */
            invokestatic jdk.dynalink.linker.support.Guards.asType:(Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         2: .line 357
      StackMap locals: jdk.dynalink.linker.GuardedInvocation jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodType
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethodsOrThis:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.lang.invoke.MethodType newType
        end local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    3     2         newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
                Name  Flags
      linkerServices  final
      newType         final

  public jdk.dynalink.linker.GuardedInvocation asType(jdk.dynalink.CallSiteDescriptor);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // jdk.dynalink.CallSiteDescriptor desc
         0: .line 371
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual jdk.dynalink.linker.GuardedInvocation.asType:(Ljava/lang/invoke/MethodType;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 1 // jdk.dynalink.CallSiteDescriptor desc
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/dynalink/linker/GuardedInvocation;
            0    1     1  desc  Ljdk/dynalink/CallSiteDescriptor;
    MethodParameters:
      Name  Flags
      desc  final

  public jdk.dynalink.linker.GuardedInvocation filterArguments(int, java.lang.invoke.MethodHandle[]);
    descriptor: (I[Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle[] filters
         0: .line 383
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* filters */
            invokestatic java.lang.invoke.MethodHandles.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         1: .line 384
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnull 2
            iload 1 /* pos */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmplt 3
         2: .line 385
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.invoke.MethodHandle[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            goto 4
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.invoke.MethodHandle[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
         3: aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* filters */
            invokestatic java.lang.invoke.MethodHandles.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         4: .line 383
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.invoke.MethodHandle[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.lang.invoke.MethodHandle[] filters
        end local 1 // int pos
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/dynalink/linker/GuardedInvocation;
            0    5     1      pos  I
            0    5     2  filters  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      pos      final
      filters  final

  public jdk.dynalink.linker.GuardedInvocation dropArguments(int, java.util.List<java.lang.Class<?>>);
    descriptor: (ILjava/util/List;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 397
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
         1: .line 398
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnull 2
            iload 1 /* pos */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 3
         2: .line 399
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.util.List
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            goto 4
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.util.List
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
         3: aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
         4: .line 397
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.util.List
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljdk/dynalink/linker/GuardedInvocation;
            0    5     1         pos  I
            0    5     2  valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (ILjava/util/List<Ljava/lang/Class<*>;>;)Ljdk/dynalink/linker/GuardedInvocation;
    MethodParameters:
            Name  Flags
      pos         final
      valueTypes  final

  public jdk.dynalink.linker.GuardedInvocation dropArguments(int, java.lang.Class<?>[]);
    descriptor: (I[Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // int pos
        start local 2 // java.lang.Class[] valueTypes
         0: .line 411
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
         1: .line 412
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnull 2
            iload 1 /* pos */
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 3
         2: .line 413
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.Class[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            goto 4
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.Class[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle
         3: aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
         4: .line 411
      StackMap locals: jdk.dynalink.linker.GuardedInvocation int java.lang.Class[]
      StackMap stack: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // java.lang.Class[] valueTypes
        end local 1 // int pos
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljdk/dynalink/linker/GuardedInvocation;
            0    5     1         pos  I
            0    5     2  valueTypes  [Ljava/lang/Class;
    Signature: (I[Ljava/lang/Class<*>;)Ljdk/dynalink/linker/GuardedInvocation;
    MethodParameters:
            Name  Flags
      pos         final
      valueTypes  final

  public java.lang.invoke.MethodHandle compose(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle fallback
         0: .line 426
            aload 0 /* this */
            aload 1 /* fallback */
            aload 1 /* fallback */
            aload 1 /* fallback */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.compose:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle fallback
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/dynalink/linker/GuardedInvocation;
            0    1     1  fallback  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
          Name  Flags
      fallback  final

  public java.lang.invoke.MethodHandle compose(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // jdk.dynalink.linker.GuardedInvocation this
        start local 1 // java.lang.invoke.MethodHandle guardFallback
        start local 2 // java.lang.invoke.MethodHandle switchpointFallback
        start local 3 // java.lang.invoke.MethodHandle catchFallback
         0: .line 443
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
            ifnonnull 2
         1: .line 444
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
            goto 6
         2: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.guard:Ljava/lang/invoke/MethodHandle;
         3: .line 447
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.invocation:Ljava/lang/invoke/MethodHandle;
         4: .line 448
            aload 1 /* guardFallback */
         5: .line 445
            invokestatic java.lang.invoke.MethodHandles.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         6: .line 442
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
            astore 4 /* guarded */
        start local 4 // java.lang.invoke.MethodHandle guarded
         7: .line 451
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
            ifnonnull 9
         8: .line 452
            aload 4 /* guarded */
            goto 16
         9: .line 454
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 4 /* guarded */
        10: .line 455
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
        11: .line 457
            aload 3 /* catchFallback */
        12: .line 458
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
        13: .line 459
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.exception:Ljava/lang/Class;
            aastore
        14: .line 456
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
        15: .line 453
            invokestatic java.lang.invoke.MethodHandles.catchException:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        16: .line 450
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
            astore 5 /* catchGuarded */
        start local 5 // java.lang.invoke.MethodHandle catchGuarded
        17: .line 461
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            ifnonnull 19
        18: .line 462
            aload 5 /* catchGuarded */
            areturn
        19: .line 465
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 5 /* catchGuarded */
            astore 6 /* spGuarded */
        start local 6 // java.lang.invoke.MethodHandle spGuarded
        20: .line 466
            aload 0 /* this */
            getfield jdk.dynalink.linker.GuardedInvocation.switchPoints:[Ljava/lang/invoke/SwitchPoint;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 24
      StackMap locals: jdk.dynalink.linker.GuardedInvocation java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top int int java.lang.invoke.SwitchPoint[]
      StackMap stack:
        21: aload 10
            iload 8
            aaload
            astore 7 /* sp */
        start local 7 // java.lang.invoke.SwitchPoint sp
        22: .line 467
            aload 7 /* sp */
            aload 6 /* spGuarded */
            aload 2 /* switchpointFallback */
            invokevirtual java.lang.invoke.SwitchPoint.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* spGuarded */
        end local 7 // java.lang.invoke.SwitchPoint sp
        23: .line 466
            iinc 8 1
      StackMap locals:
      StackMap stack:
        24: iload 8
            iload 9
            if_icmplt 21
        25: .line 470
            aload 6 /* spGuarded */
            areturn
        end local 6 // java.lang.invoke.MethodHandle spGuarded
        end local 5 // java.lang.invoke.MethodHandle catchGuarded
        end local 4 // java.lang.invoke.MethodHandle guarded
        end local 3 // java.lang.invoke.MethodHandle catchFallback
        end local 2 // java.lang.invoke.MethodHandle switchpointFallback
        end local 1 // java.lang.invoke.MethodHandle guardFallback
        end local 0 // jdk.dynalink.linker.GuardedInvocation this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   26     0                 this  Ljdk/dynalink/linker/GuardedInvocation;
            0   26     1        guardFallback  Ljava/lang/invoke/MethodHandle;
            0   26     2  switchpointFallback  Ljava/lang/invoke/MethodHandle;
            0   26     3        catchFallback  Ljava/lang/invoke/MethodHandle;
            7   26     4              guarded  Ljava/lang/invoke/MethodHandle;
           17   26     5         catchGuarded  Ljava/lang/invoke/MethodHandle;
           20   26     6            spGuarded  Ljava/lang/invoke/MethodHandle;
           22   23     7                   sp  Ljava/lang/invoke/SwitchPoint;
    MethodParameters:
                     Name  Flags
      guardFallback        final
      switchpointFallback  final
      catchFallback        final
}
SourceFile: "GuardedInvocation.java"