public class org.jruby.runtime.profile.builtin.ProfileOutput
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.runtime.profile.builtin.ProfileOutput
  super_class: java.lang.Object
{
  private final java.io.PrintStream stream;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean headerPrinted;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
        start local 1 // java.io.PrintStream out
         0: .line 16
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 13
            aload 0 /* this */
            iconst_0
            putfield org.jruby.runtime.profile.builtin.ProfileOutput.headerPrinted:Z
         2: .line 17
            aload 0 /* this */
            aload 1 /* out */
            putfield org.jruby.runtime.profile.builtin.ProfileOutput.stream:Ljava/io/PrintStream;
         3: .line 18
            return
        end local 1 // java.io.PrintStream out
        end local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/runtime/profile/builtin/ProfileOutput;
            0    4     1   out  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      out   

  public void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
        start local 1 // java.io.File out
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 13
            aload 0 /* this */
            iconst_0
            putfield org.jruby.runtime.profile.builtin.ProfileOutput.headerPrinted:Z
         2: .line 21
            aload 0 /* this */
            new java.io.PrintStream
            dup
            new java.io.FileOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
            putfield org.jruby.runtime.profile.builtin.ProfileOutput.stream:Ljava/io/PrintStream;
         3: .line 22
            return
        end local 1 // java.io.File out
        end local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/runtime/profile/builtin/ProfileOutput;
            0    4     1   out  Ljava/io/File;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
      Name  Flags
      out   

  public void printProfile(org.jruby.runtime.profile.builtin.ProfilePrinter);
    descriptor: (Lorg/jruby/runtime/profile/builtin/ProfilePrinter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
        start local 1 // org.jruby.runtime.profile.builtin.ProfilePrinter printer
         0: .line 25
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileOutput.headerPrinted:Z
            ifeq 3
         1: .line 26
            aload 1 /* printer */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileOutput.stream:Ljava/io/PrintStream;
            iconst_0
            invokevirtual org.jruby.runtime.profile.builtin.ProfilePrinter.printProfile:(Ljava/io/PrintStream;Z)V
         2: .line 27
            goto 7
         3: .line 28
      StackMap locals:
      StackMap stack:
            aload 1 /* printer */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileOutput.stream:Ljava/io/PrintStream;
            invokevirtual org.jruby.runtime.profile.builtin.ProfilePrinter.printHeader:(Ljava/io/PrintStream;)V
         4: .line 29
            aload 1 /* printer */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileOutput.stream:Ljava/io/PrintStream;
            iconst_1
            invokevirtual org.jruby.runtime.profile.builtin.ProfilePrinter.printProfile:(Ljava/io/PrintStream;Z)V
         5: .line 30
            aload 0 /* this */
            iconst_1
            putfield org.jruby.runtime.profile.builtin.ProfileOutput.headerPrinted:Z
         6: .line 31
            aload 0 /* this */
            aload 1 /* printer */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileOutput.footerAndCleanupOnShutdown:(Lorg/jruby/runtime/profile/builtin/ProfilePrinter;)V
         7: .line 33
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.profile.builtin.ProfilePrinter printer
        end local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/runtime/profile/builtin/ProfileOutput;
            0    8     1  printer  Lorg/jruby/runtime/profile/builtin/ProfilePrinter;
    MethodParameters:
         Name  Flags
      printer  

  private void footerAndCleanupOnShutdown(org.jruby.runtime.profile.builtin.ProfilePrinter);
    descriptor: (Lorg/jruby/runtime/profile/builtin/ProfilePrinter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
        start local 1 // org.jruby.runtime.profile.builtin.ProfilePrinter printer
         0: .line 36
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            new org.jruby.runtime.profile.builtin.ProfileOutput$1
            dup
            aload 0 /* this */
            aload 1 /* printer */
            invokespecial org.jruby.runtime.profile.builtin.ProfileOutput$1.<init>:(Lorg/jruby/runtime/profile/builtin/ProfileOutput;Lorg/jruby/runtime/profile/builtin/ProfilePrinter;)V
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         1: .line 42
            return
        end local 1 // org.jruby.runtime.profile.builtin.ProfilePrinter printer
        end local 0 // org.jruby.runtime.profile.builtin.ProfileOutput this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/runtime/profile/builtin/ProfileOutput;
            0    2     1  printer  Lorg/jruby/runtime/profile/builtin/ProfilePrinter;
    MethodParameters:
         Name  Flags
      printer  final
}
SourceFile: "ProfileOutput.java"
NestMembers:
  org.jruby.runtime.profile.builtin.ProfileOutput$1
InnerClasses:
  org.jruby.runtime.profile.builtin.ProfileOutput$1