public class com.sun.tools.javap.CodeWriter extends com.sun.tools.javap.BasicWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javap.CodeWriter
  super_class: com.sun.tools.javap.BasicWriter
{
  com.sun.tools.classfile.Instruction$KindVisitor<java.lang.Void, java.lang.Integer> instructionPrinter;
    descriptor: Lcom/sun/tools/classfile/Instruction$KindVisitor;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/classfile/Instruction$KindVisitor<Ljava/lang/Void;Ljava/lang/Integer;>;

  private com.sun.tools.javap.AttributeWriter attrWriter;
    descriptor: Lcom/sun/tools/javap/AttributeWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.ClassWriter classWriter;
    descriptor: Lcom/sun/tools/javap/ClassWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.ConstantWriter constantWriter;
    descriptor: Lcom/sun/tools/javap/ConstantWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.LocalVariableTableWriter localVariableTableWriter;
    descriptor: Lcom/sun/tools/javap/LocalVariableTableWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.LocalVariableTypeTableWriter localVariableTypeTableWriter;
    descriptor: Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.TypeAnnotationWriter typeAnnotationWriter;
    descriptor: Lcom/sun/tools/javap/TypeAnnotationWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.SourceWriter sourceWriter;
    descriptor: Lcom/sun/tools/javap/SourceWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.StackMapWriter stackMapWriter;
    descriptor: Lcom/sun/tools/javap/StackMapWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.TryBlockWriter tryBlockWriter;
    descriptor: Lcom/sun/tools/javap/TryBlockWriter;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javap.Options options;
    descriptor: Lcom/sun/tools/javap/Options;
    flags: (0x0002) ACC_PRIVATE

  public static com.sun.tools.javap.CodeWriter instance(com.sun.tools.javap.Context);
    descriptor: (Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/CodeWriter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javap.Context context
         0: .line 50
            aload 0 /* context */
            ldc Lcom/sun/tools/javap/CodeWriter;
            invokevirtual com.sun.tools.javap.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.sun.tools.javap.CodeWriter
            astore 1 /* instance */
        start local 1 // com.sun.tools.javap.CodeWriter instance
         1: .line 51
            aload 1 /* instance */
            ifnonnull 3
         2: .line 52
            new com.sun.tools.javap.CodeWriter
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javap.CodeWriter.<init>:(Lcom/sun/tools/javap/Context;)V
            astore 1 /* instance */
         3: .line 53
      StackMap locals: com.sun.tools.javap.CodeWriter
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javap.CodeWriter instance
        end local 0 // com.sun.tools.javap.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javap/Context;
            1    4     1  instance  Lcom/sun/tools/javap/CodeWriter;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javap.Context);
    descriptor: (Lcom/sun/tools/javap/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.javap.Context context
         0: .line 57
            aload 0 /* this */
            aload 1 /* context */
            invokespecial com.sun.tools.javap.BasicWriter.<init>:(Lcom/sun/tools/javap/Context;)V
         1: .line 130
            aload 0 /* this */
         2: .line 131
            new com.sun.tools.javap.CodeWriter$1
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javap.CodeWriter$1.<init>:(Lcom/sun/tools/javap/CodeWriter;)V
            putfield com.sun.tools.javap.CodeWriter.instructionPrinter:Lcom/sun/tools/classfile/Instruction$KindVisitor;
         3: .line 58
            aload 1 /* context */
            ldc Lcom/sun/tools/javap/CodeWriter;
            aload 0 /* this */
            invokevirtual com.sun.tools.javap.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 59
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.AttributeWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/AttributeWriter;
            putfield com.sun.tools.javap.CodeWriter.attrWriter:Lcom/sun/tools/javap/AttributeWriter;
         5: .line 60
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.ClassWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/ClassWriter;
            putfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
         6: .line 61
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.ConstantWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/ConstantWriter;
            putfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
         7: .line 62
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.SourceWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/SourceWriter;
            putfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
         8: .line 63
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.TryBlockWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/TryBlockWriter;
            putfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
         9: .line 64
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.StackMapWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/StackMapWriter;
            putfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
        10: .line 65
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.LocalVariableTableWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/LocalVariableTableWriter;
            putfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
        11: .line 66
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.LocalVariableTypeTableWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
            putfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
        12: .line 67
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.TypeAnnotationWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/TypeAnnotationWriter;
            putfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
        13: .line 68
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javap.Options.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/Options;
            putfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
        14: .line 69
            return
        end local 1 // com.sun.tools.javap.Context context
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lcom/sun/tools/javap/CodeWriter;
            0   15     1  context  Lcom/sun/tools/javap/Context;
    MethodParameters:
         Name  Flags
      context  

  void write(com.sun.tools.classfile.Code_attribute, com.sun.tools.classfile.ConstantPool);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
        start local 2 // com.sun.tools.classfile.ConstantPool constant_pool
         0: .line 72
            aload 0 /* this */
            ldc "Code:"
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
         1: .line 73
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
         2: .line 74
            aload 0 /* this */
            aload 1 /* attr */
            aload 2 /* constant_pool */
            invokevirtual com.sun.tools.javap.CodeWriter.writeVerboseHeader:(Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
         3: .line 75
            aload 0 /* this */
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.CodeWriter.writeInstrs:(Lcom/sun/tools/classfile/Code_attribute;)V
         4: .line 76
            aload 0 /* this */
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.CodeWriter.writeExceptionTable:(Lcom/sun/tools/classfile/Code_attribute;)V
         5: .line 77
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.attrWriter:Lcom/sun/tools/javap/AttributeWriter;
            aload 1 /* attr */
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.attributes:Lcom/sun/tools/classfile/Attributes;
            aload 2 /* constant_pool */
            invokevirtual com.sun.tools.javap.AttributeWriter.write:(Ljava/lang/Object;Lcom/sun/tools/classfile/Attributes;Lcom/sun/tools/classfile/ConstantPool;)V
         6: .line 78
            aload 0 /* this */
            iconst_m1
            invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
         7: .line 79
            return
        end local 2 // com.sun.tools.classfile.ConstantPool constant_pool
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/sun/tools/javap/CodeWriter;
            0    8     1           attr  Lcom/sun/tools/classfile/Code_attribute;
            0    8     2  constant_pool  Lcom/sun/tools/classfile/ConstantPool;
    MethodParameters:
               Name  Flags
      attr           
      constant_pool  

  public void writeVerboseHeader(com.sun.tools.classfile.Code_attribute, com.sun.tools.classfile.ConstantPool);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
        start local 2 // com.sun.tools.classfile.ConstantPool constant_pool
         0: .line 82
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
            invokevirtual com.sun.tools.javap.ClassWriter.getMethod:()Lcom/sun/tools/classfile/Method;
            astore 3 /* method */
        start local 3 // com.sun.tools.classfile.Method method
         1: .line 85
            aload 3 /* method */
            getfield com.sun.tools.classfile.Method.descriptor:Lcom/sun/tools/classfile/Descriptor;
            aload 2 /* constant_pool */
            invokevirtual com.sun.tools.classfile.Descriptor.getParameterCount:(Lcom/sun/tools/classfile/ConstantPool;)I
            istore 5 /* n */
        start local 5 // int n
         2: .line 86
            aload 3 /* method */
            getfield com.sun.tools.classfile.Method.access_flags:Lcom/sun/tools/classfile/AccessFlags;
            bipush 8
            invokevirtual com.sun.tools.classfile.AccessFlags.is:(I)Z
            ifne 4
         3: .line 87
            iinc 5 /* n */ 1
         4: .line 88
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute com.sun.tools.classfile.ConstantPool com.sun.tools.classfile.Method top int
      StackMap stack:
            iload 5 /* n */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            astore 4 /* argCount */
        end local 5 // int n
        start local 4 // java.lang.String argCount
         5: .line 89
            goto 11
        end local 4 // java.lang.String argCount
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute com.sun.tools.classfile.ConstantPool com.sun.tools.classfile.Method
      StackMap stack: com.sun.tools.classfile.ConstantPoolException
         6: astore 5 /* e */
        start local 5 // com.sun.tools.classfile.ConstantPoolException e
         7: .line 90
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual com.sun.tools.javap.CodeWriter.report:(Lcom/sun/tools/classfile/ConstantPoolException;)Ljava/lang/String;
            astore 4 /* argCount */
        end local 5 // com.sun.tools.classfile.ConstantPoolException e
        start local 4 // java.lang.String argCount
         8: goto 11
        end local 4 // java.lang.String argCount
         9: .line 91
      StackMap locals:
      StackMap stack: com.sun.tools.classfile.DescriptorException
            astore 5 /* e */
        start local 5 // com.sun.tools.classfile.DescriptorException e
        10: .line 92
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual com.sun.tools.javap.CodeWriter.report:(Lcom/sun/tools/classfile/DescriptorException;)Ljava/lang/String;
            astore 4 /* argCount */
        end local 5 // com.sun.tools.classfile.DescriptorException e
        start local 4 // java.lang.String argCount
        11: .line 95
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "stack="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.max_stack:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        12: .line 96
            ldc ", locals="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.max_locals:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 97
            ldc ", args_size="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* argCount */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 95
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
        15: .line 99
            return
        end local 4 // java.lang.String argCount
        end local 3 // com.sun.tools.classfile.Method method
        end local 2 // com.sun.tools.classfile.ConstantPool constant_pool
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/sun/tools/javap/CodeWriter;
            0   16     1           attr  Lcom/sun/tools/classfile/Code_attribute;
            0   16     2  constant_pool  Lcom/sun/tools/classfile/ConstantPool;
            1   16     3         method  Lcom/sun/tools/classfile/Method;
            5    6     4       argCount  Ljava/lang/String;
            8    9     4       argCount  Ljava/lang/String;
           11   16     4       argCount  Ljava/lang/String;
            2    5     5              n  I
            7    8     5              e  Lcom/sun/tools/classfile/ConstantPoolException;
           10   11     5              e  Lcom/sun/tools/classfile/DescriptorException;
      Exception table:
        from    to  target  type
           1     5       6  Class com.sun.tools.classfile.ConstantPoolException
           1     5       9  Class com.sun.tools.classfile.DescriptorException
    MethodParameters:
               Name  Flags
      attr           
      constant_pool  

  public void writeInstrs(com.sun.tools.classfile.Code_attribute);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
         0: .line 102
            aload 0 /* this */
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.CodeWriter.getDetailWriters:(Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List;
            astore 2 /* detailWriters */
        start local 2 // java.util.List detailWriters
         1: .line 104
            aload 1 /* attr */
            invokevirtual com.sun.tools.classfile.Code_attribute.getInstructions:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.classfile.Instruction
            astore 3 /* instr */
        start local 3 // com.sun.tools.classfile.Instruction instr
         3: .line 106
            aload 2 /* detailWriters */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List com.sun.tools.classfile.Instruction java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javap.InstructionDetailWriter
            astore 5 /* w */
        start local 5 // com.sun.tools.javap.InstructionDetailWriter w
         5: .line 107
            aload 5 /* w */
            aload 3 /* instr */
            invokevirtual com.sun.tools.javap.InstructionDetailWriter.writeDetails:(Lcom/sun/tools/classfile/Instruction;)V
        end local 5 // com.sun.tools.javap.InstructionDetailWriter w
         6: .line 106
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 108
            aload 0 /* this */
            aload 3 /* instr */
            invokevirtual com.sun.tools.javap.CodeWriter.writeInstr:(Lcom/sun/tools/classfile/Instruction;)V
         8: .line 109
            goto 12
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List com.sun.tools.classfile.Instruction java.util.Iterator
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         9: pop
        10: .line 110
            aload 0 /* this */
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "error at or after byte "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* instr */
            invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.javap.CodeWriter.report:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
        11: .line 111
            goto 13
        end local 3 // com.sun.tools.classfile.Instruction instr
        12: .line 104
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 115
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List
      StackMap stack:
            aload 2 /* detailWriters */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javap.InstructionDetailWriter
            astore 3 /* w */
        start local 3 // com.sun.tools.javap.InstructionDetailWriter w
        15: .line 116
            aload 3 /* w */
            invokevirtual com.sun.tools.javap.InstructionDetailWriter.flush:()V
        end local 3 // com.sun.tools.javap.InstructionDetailWriter w
        16: .line 115
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 117
            return
        end local 2 // java.util.List detailWriters
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/sun/tools/javap/CodeWriter;
            0   18     1           attr  Lcom/sun/tools/classfile/Code_attribute;
            1   18     2  detailWriters  Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
            3   12     3          instr  Lcom/sun/tools/classfile/Instruction;
            5    6     5              w  Lcom/sun/tools/javap/InstructionDetailWriter;
           15   16     3              w  Lcom/sun/tools/javap/InstructionDetailWriter;
      Exception table:
        from    to  target  type
           3     8       9  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      attr  

  public void writeInstr(com.sun.tools.classfile.Instruction);
    descriptor: (Lcom/sun/tools/classfile/Instruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Instruction instr
         0: .line 120
            aload 0 /* this */
            ldc "%4d: %-13s "
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* instr */
            invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 1 /* instr */
            invokevirtual com.sun.tools.classfile.Instruction.getMnemonic:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
         1: .line 124
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.indentWidth:I
            istore 2 /* indentWidth */
        start local 2 // int indentWidth
         2: .line 125
            bipush 6
            iload 2 /* indentWidth */
            iadd
            iconst_1
            isub
            iload 2 /* indentWidth */
            idiv
            istore 3 /* indent */
        start local 3 // int indent
         3: .line 126
            aload 1 /* instr */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.instructionPrinter:Lcom/sun/tools/classfile/Instruction$KindVisitor;
            iload 3 /* indent */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.sun.tools.classfile.Instruction.accept:(Lcom/sun/tools/classfile/Instruction$KindVisitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 127
            aload 0 /* this */
            invokevirtual com.sun.tools.javap.CodeWriter.println:()V
         5: .line 128
            return
        end local 3 // int indent
        end local 2 // int indentWidth
        end local 1 // com.sun.tools.classfile.Instruction instr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/sun/tools/javap/CodeWriter;
            0    6     1        instr  Lcom/sun/tools/classfile/Instruction;
            2    6     2  indentWidth  I
            3    6     3       indent  I
    MethodParameters:
       Name  Flags
      instr  

  public void writeExceptionTable(com.sun.tools.classfile.Code_attribute);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
         0: .line 211
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.exception_table_length:I
            ifle 20
         1: .line 212
            aload 0 /* this */
            ldc "Exception table:"
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
         2: .line 213
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
         3: .line 214
            aload 0 /* this */
            ldc " from    to  target type"
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
         4: .line 215
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 18
         6: .line 216
      StackMap locals: int
      StackMap stack:
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.exception_table:[Lcom/sun/tools/classfile/Code_attribute$Exception_data;
            iload 2 /* i */
            aaload
            astore 3 /* handler */
        start local 3 // com.sun.tools.classfile.Code_attribute$Exception_data handler
         7: .line 217
            aload 0 /* this */
            ldc " %5d %5d %5d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 218
            aload 3 /* handler */
            getfield com.sun.tools.classfile.Code_attribute$Exception_data.start_pc:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 3 /* handler */
            getfield com.sun.tools.classfile.Code_attribute$Exception_data.end_pc:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* handler */
            getfield com.sun.tools.classfile.Code_attribute$Exception_data.handler_pc:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         9: .line 217
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
        10: .line 219
            aload 0 /* this */
            ldc "   "
            invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
        11: .line 220
            aload 3 /* handler */
            getfield com.sun.tools.classfile.Code_attribute$Exception_data.catch_type:I
            istore 4 /* catch_type */
        start local 4 // int catch_type
        12: .line 221
            iload 4 /* catch_type */
            ifne 15
        13: .line 222
            aload 0 /* this */
            ldc "any"
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
        14: .line 223
            goto 17
        15: .line 224
      StackMap locals: com.sun.tools.classfile.Code_attribute$Exception_data int
      StackMap stack:
            aload 0 /* this */
            ldc "Class "
            invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
        16: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
            iload 4 /* catch_type */
            invokevirtual com.sun.tools.javap.ConstantWriter.stringValue:(I)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
        end local 4 // int catch_type
        end local 3 // com.sun.tools.classfile.Code_attribute$Exception_data handler
        17: .line 215
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 2 /* i */
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.exception_table:[Lcom/sun/tools/classfile/Code_attribute$Exception_data;
            arraylength
            if_icmplt 6
        end local 2 // int i
        19: .line 228
            aload 0 /* this */
            iconst_m1
            invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
        20: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lcom/sun/tools/javap/CodeWriter;
            0   21     1        attr  Lcom/sun/tools/classfile/Code_attribute;
            5   19     2           i  I
            7   17     3     handler  Lcom/sun/tools/classfile/Code_attribute$Exception_data;
           12   17     4  catch_type  I
    MethodParameters:
      Name  Flags
      attr  

  private void printConstant(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // int index
         0: .line 234
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
            iload 1 /* index */
            invokevirtual com.sun.tools.javap.ConstantWriter.write:(I)V
         1: .line 235
            return
        end local 1 // int index
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javap/CodeWriter;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      index  

  private java.util.List<com.sun.tools.javap.InstructionDetailWriter> getDetailWriters(com.sun.tools.classfile.Code_attribute);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javap.CodeWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
         0: .line 238
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* detailWriters */
        start local 2 // java.util.List detailWriters
         1: .line 239
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.SOURCE:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 240
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
            invokevirtual com.sun.tools.javap.ClassWriter.getClassFile:()Lcom/sun/tools/classfile/ClassFile;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.SourceWriter.reset:(Lcom/sun/tools/classfile/ClassFile;Lcom/sun/tools/classfile/Code_attribute;)V
         3: .line 241
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
            invokevirtual com.sun.tools.javap.SourceWriter.hasSource:()Z
            ifeq 5
         4: .line 242
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
            goto 6
         5: .line 244
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            ldc "(Source code not available)"
            invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
         6: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.LOCAL_VARS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 248
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.LocalVariableTableWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
         8: .line 249
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.LOCAL_VAR_TYPES:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 253
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.LocalVariableTypeTableWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
        11: .line 254
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.STACKMAPS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 16
        13: .line 258
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.StackMapWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
        14: .line 259
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
            invokevirtual com.sun.tools.javap.StackMapWriter.writeInitialDetails:()V
        15: .line 260
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.TRY_BLOCKS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 264
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.TryBlockWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
        18: .line 265
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
            getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.TYPE_ANNOS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 269
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
            aload 1 /* attr */
            invokevirtual com.sun.tools.javap.TypeAnnotationWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
        21: .line 270
            aload 2 /* detailWriters */
            aload 0 /* this */
            getfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 273
      StackMap locals:
      StackMap stack:
            aload 2 /* detailWriters */
            areturn
        end local 2 // java.util.List detailWriters
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.CodeWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lcom/sun/tools/javap/CodeWriter;
            0   23     1           attr  Lcom/sun/tools/classfile/Code_attribute;
            1   23     2  detailWriters  Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
    Signature: (Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
    MethodParameters:
      Name  Flags
      attr  
}
SourceFile: "CodeWriter.java"
NestMembers:
  com.sun.tools.javap.CodeWriter$1
InnerClasses:
  public Exception_data = com.sun.tools.classfile.Code_attribute$Exception_data of com.sun.tools.classfile.Code_attribute
  public abstract KindVisitor = com.sun.tools.classfile.Instruction$KindVisitor of com.sun.tools.classfile.Instruction
  com.sun.tools.javap.CodeWriter$1
  public final Kind = com.sun.tools.javap.InstructionDetailWriter$Kind of com.sun.tools.javap.InstructionDetailWriter