abstract class com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame this
         0: .line 1234
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/jvm/ClassWriter$StackMapTableFrame;

  abstract int getFrameType();
    descriptor: ()I
    flags: (0x0400) ACC_ABSTRACT

  void write(com.sun.tools.javac.jvm.ClassWriter);
    descriptor: (Lcom/sun/tools/javac/jvm/ClassWriter;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame this
        start local 1 // com.sun.tools.javac.jvm.ClassWriter writer
         0: .line 1238
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.getFrameType:()I
            istore 2 /* frameType */
        start local 2 // int frameType
         1: .line 1239
            aload 1 /* writer */
            getfield com.sun.tools.javac.jvm.ClassWriter.databuf:Lcom/sun/tools/javac/util/ByteBuffer;
            iload 2 /* frameType */
            invokevirtual com.sun.tools.javac.util.ByteBuffer.appendByte:(I)V
         2: .line 1240
            aload 1 /* writer */
            getfield com.sun.tools.javac.jvm.ClassWriter.debugstackmap:Z
            ifeq 3
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " frame_type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* frameType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 1241
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int frameType
        end local 1 // com.sun.tools.javac.jvm.ClassWriter writer
        end local 0 // com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/sun/tools/javac/jvm/ClassWriter$StackMapTableFrame;
            0    4     1     writer  Lcom/sun/tools/javac/jvm/ClassWriter;
            1    4     2  frameType  I
    MethodParameters:
        Name  Flags
      writer  

  static com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame getInstance(com.sun.tools.javac.jvm.Code$StackMapFrame, int, com.sun.tools.javac.code.Type[], com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/jvm/Code$StackMapFrame;I[Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/jvm/ClassWriter$StackMapTableFrame;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // com.sun.tools.javac.jvm.Code$StackMapFrame this_frame
        start local 1 // int prev_pc
        start local 2 // com.sun.tools.javac.code.Type[] prev_locals
        start local 3 // com.sun.tools.javac.code.Types types
         0: .line 1372
            aload 0 /* this_frame */
            getfield com.sun.tools.javac.jvm.Code$StackMapFrame.locals:[Lcom/sun/tools/javac/code/Type;
            astore 4 /* locals */
        start local 4 // com.sun.tools.javac.code.Type[] locals
         1: .line 1373
            aload 0 /* this_frame */
            getfield com.sun.tools.javac.jvm.Code$StackMapFrame.stack:[Lcom/sun/tools/javac/code/Type;
            astore 5 /* stack */
        start local 5 // com.sun.tools.javac.code.Type[] stack
         2: .line 1374
            aload 0 /* this_frame */
            getfield com.sun.tools.javac.jvm.Code$StackMapFrame.pc:I
            iload 1 /* prev_pc */
            isub
            iconst_1
            isub
            istore 6 /* offset_delta */
        start local 6 // int offset_delta
         3: .line 1375
            aload 5 /* stack */
            arraylength
            iconst_1
            if_icmpne 7
         4: .line 1376
            aload 4 /* locals */
            arraylength
            aload 2 /* prev_locals */
            arraylength
            if_icmpne 27
         5: .line 1377
            aload 2 /* prev_locals */
            aload 4 /* locals */
            aload 3 /* types */
            invokestatic com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.compare:([Lcom/sun/tools/javac/code/Type;[Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)I
            ifne 27
         6: .line 1378
            new com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameLocals1StackItemFrame
            dup
            iload 6 /* offset_delta */
            aload 5 /* stack */
            iconst_0
            aaload
            invokespecial com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameLocals1StackItemFrame.<init>:(ILcom/sun/tools/javac/code/Type;)V
            areturn
         7: .line 1380
      StackMap locals: com.sun.tools.javac.code.Type[] com.sun.tools.javac.code.Type[] int
      StackMap stack:
            aload 5 /* stack */
            arraylength
            ifne 27
         8: .line 1381
            aload 2 /* prev_locals */
            aload 4 /* locals */
            aload 3 /* types */
            invokestatic com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.compare:([Lcom/sun/tools/javac/code/Type;[Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)I
            istore 7 /* diff_length */
        start local 7 // int diff_length
         9: .line 1382
            iload 7 /* diff_length */
            ifne 11
        10: .line 1383
            new com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameFrame
            dup
            iload 6 /* offset_delta */
            invokespecial com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameFrame.<init>:(I)V
            areturn
        11: .line 1384
      StackMap locals: int
      StackMap stack:
            bipush -4
            iload 7 /* diff_length */
            if_icmpge 23
            iload 7 /* diff_length */
            ifge 23
        12: .line 1386
            iload 7 /* diff_length */
            ineg
            anewarray com.sun.tools.javac.code.Type
            astore 8 /* local_diff */
        start local 8 // com.sun.tools.javac.code.Type[] local_diff
        13: .line 1387
            aload 2 /* prev_locals */
            arraylength
            istore 9 /* i */
        start local 9 // int i
        14: iconst_0
            istore 10 /* j */
        start local 10 // int j
        15: goto 18
        16: .line 1388
      StackMap locals: com.sun.tools.javac.code.Type[] int int
      StackMap stack:
            aload 8 /* local_diff */
            iload 10 /* j */
            aload 4 /* locals */
            iload 9 /* i */
            aaload
            aastore
        17: .line 1387
            iinc 9 /* i */ 1
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        18: iload 9 /* i */
            aload 4 /* locals */
            arraylength
            if_icmplt 16
        end local 10 // int j
        end local 9 // int i
        19: .line 1390
            new com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$AppendFrame
            dup
            sipush 251
            iload 7 /* diff_length */
            isub
        20: .line 1391
            iload 6 /* offset_delta */
        21: .line 1392
            aload 8 /* local_diff */
        22: .line 1390
            invokespecial com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$AppendFrame.<init>:(II[Lcom/sun/tools/javac/code/Type;)V
            areturn
        end local 8 // com.sun.tools.javac.code.Type[] local_diff
        23: .line 1393
      StackMap locals:
      StackMap stack:
            iload 7 /* diff_length */
            ifle 27
            iload 7 /* diff_length */
            iconst_4
            if_icmpge 27
        24: .line 1395
            new com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$ChopFrame
            dup
            sipush 251
            iload 7 /* diff_length */
            isub
        25: .line 1396
            iload 6 /* offset_delta */
        26: .line 1395
            invokespecial com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$ChopFrame.<init>:(II)V
            areturn
        end local 7 // int diff_length
        27: .line 1400
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$FullFrame
            dup
            iload 6 /* offset_delta */
            aload 4 /* locals */
            aload 5 /* stack */
            invokespecial com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$FullFrame.<init>:(I[Lcom/sun/tools/javac/code/Type;[Lcom/sun/tools/javac/code/Type;)V
            areturn
        end local 6 // int offset_delta
        end local 5 // com.sun.tools.javac.code.Type[] stack
        end local 4 // com.sun.tools.javac.code.Type[] locals
        end local 3 // com.sun.tools.javac.code.Types types
        end local 2 // com.sun.tools.javac.code.Type[] prev_locals
        end local 1 // int prev_pc
        end local 0 // com.sun.tools.javac.jvm.Code$StackMapFrame this_frame
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0    this_frame  Lcom/sun/tools/javac/jvm/Code$StackMapFrame;
            0   28     1       prev_pc  I
            0   28     2   prev_locals  [Lcom/sun/tools/javac/code/Type;
            0   28     3         types  Lcom/sun/tools/javac/code/Types;
            1   28     4        locals  [Lcom/sun/tools/javac/code/Type;
            2   28     5         stack  [Lcom/sun/tools/javac/code/Type;
            3   28     6  offset_delta  I
            9   27     7   diff_length  I
           13   23     8    local_diff  [Lcom/sun/tools/javac/code/Type;
           14   19     9             i  I
           15   19    10             j  I
    MethodParameters:
             Name  Flags
      this_frame   
      prev_pc      
      prev_locals  
      types        

  static boolean isInt(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type t
         0: .line 1404
            aload 0 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            getstatic com.sun.tools.javac.code.TypeTag.INT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.isStrictSubRangeOf:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
            aload 0 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.BOOLEAN:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.sun.tools.javac.code.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  static boolean isSameType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type t1
        start local 1 // com.sun.tools.javac.code.Type t2
        start local 2 // com.sun.tools.javac.code.Types types
         0: .line 1408
            aload 0 /* t1 */
            ifnonnull 2
            aload 1 /* t2 */
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 1409
      StackMap locals:
      StackMap stack:
            aload 1 /* t2 */
            ifnonnull 3
            iconst_0
            ireturn
         3: .line 1411
      StackMap locals:
      StackMap stack:
            aload 0 /* t1 */
            invokestatic com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.isInt:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 4
            aload 1 /* t2 */
            invokestatic com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.isInt:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 4
            iconst_1
            ireturn
         4: .line 1413
      StackMap locals:
      StackMap stack:
            aload 0 /* t1 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_THIS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 6
         5: .line 1414
            aload 1 /* t2 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_THIS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ireturn
         6: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* t1 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_OBJECT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 11
         7: .line 1416
            aload 1 /* t2 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_OBJECT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 10
         8: .line 1417
            aload 0 /* t1 */
            checkcast com.sun.tools.javac.jvm.UninitializedType
            getfield com.sun.tools.javac.jvm.UninitializedType.offset:I
            aload 1 /* t2 */
            checkcast com.sun.tools.javac.jvm.UninitializedType
            getfield com.sun.tools.javac.jvm.UninitializedType.offset:I
            if_icmpne 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        10: .line 1419
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 1421
      StackMap locals:
      StackMap stack:
            aload 1 /* t2 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_THIS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 12
            aload 1 /* t2 */
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_OBJECT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 13
        12: .line 1422
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        13: .line 1425
      StackMap locals:
      StackMap stack:
            aload 2 /* types */
            aload 0 /* t1 */
            aload 1 /* t2 */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Types types
        end local 1 // com.sun.tools.javac.code.Type t2
        end local 0 // com.sun.tools.javac.code.Type t1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0     t1  Lcom/sun/tools/javac/code/Type;
            0   14     1     t2  Lcom/sun/tools/javac/code/Type;
            0   14     2  types  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
       Name  Flags
      t1     
      t2     
      types  

  static int compare(com.sun.tools.javac.code.Type[], com.sun.tools.javac.code.Type[], com.sun.tools.javac.code.Types);
    descriptor: ([Lcom/sun/tools/javac/code/Type;[Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.code.Type[] arr1
        start local 1 // com.sun.tools.javac.code.Type[] arr2
        start local 2 // com.sun.tools.javac.code.Types types
         0: .line 1429
            aload 0 /* arr1 */
            arraylength
            aload 1 /* arr2 */
            arraylength
            isub
            istore 3 /* diff_length */
        start local 3 // int diff_length
         1: .line 1430
            iload 3 /* diff_length */
            iconst_4
            if_icmpgt 2
            iload 3 /* diff_length */
            bipush -4
            if_icmpge 3
         2: .line 1431
      StackMap locals: int
      StackMap stack:
            ldc 2147483647
            ireturn
         3: .line 1433
      StackMap locals:
      StackMap stack:
            iload 3 /* diff_length */
            ifle 4
            aload 1 /* arr2 */
            arraylength
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* arr1 */
            arraylength
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* len */
        start local 4 // int len
         6: .line 1434
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 11
         8: .line 1435
      StackMap locals: int int
      StackMap stack:
            aload 0 /* arr1 */
            iload 5 /* i */
            aaload
            aload 1 /* arr2 */
            iload 5 /* i */
            aaload
            aload 2 /* types */
            invokestatic com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)Z
            ifne 10
         9: .line 1436
            ldc 2147483647
            ireturn
        10: .line 1434
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            iload 4 /* len */
            if_icmplt 8
        end local 5 // int i
        12: .line 1439
            iload 3 /* diff_length */
            ireturn
        end local 4 // int len
        end local 3 // int diff_length
        end local 2 // com.sun.tools.javac.code.Types types
        end local 1 // com.sun.tools.javac.code.Type[] arr2
        end local 0 // com.sun.tools.javac.code.Type[] arr1
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         arr1  [Lcom/sun/tools/javac/code/Type;
            0   13     1         arr2  [Lcom/sun/tools/javac/code/Type;
            0   13     2        types  Lcom/sun/tools/javac/code/Types;
            1   13     3  diff_length  I
            6   13     4          len  I
            7   12     5            i  I
    MethodParameters:
       Name  Flags
      arr1   
      arr2   
      types  
}
SourceFile: "ClassWriter.java"
NestHost: com.sun.tools.javac.jvm.ClassWriter
InnerClasses:
  abstract StackMapTableFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame of com.sun.tools.javac.jvm.ClassWriter
  AppendFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$AppendFrame of com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  ChopFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$ChopFrame of com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  FullFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$FullFrame of com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  SameFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameFrame of com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  SameLocals1StackItemFrame = com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame$SameLocals1StackItemFrame of com.sun.tools.javac.jvm.ClassWriter$StackMapTableFrame
  StackMapFrame = com.sun.tools.javac.jvm.Code$StackMapFrame of com.sun.tools.javac.jvm.Code