public class org.jruby.runtime.profile.builtin.ProfileData implements org.jruby.runtime.profile.ProfileCollection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.runtime.profile.builtin.ProfileData
  super_class: java.lang.Object
{
  private org.jruby.runtime.profile.builtin.Invocation currentInvocation;
    descriptor: Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.runtime.profile.builtin.Invocation topInvocation;
    descriptor: Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x0002) ACC_PRIVATE

  private int[] methodRecursion;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private final org.jruby.runtime.ThreadContext threadContext;
    descriptor: Lorg/jruby/runtime/ThreadContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jruby.runtime.profile.builtin.ProfiledMethods profiledMethods;
    descriptor: Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.jruby.runtime.ThreadContext, org.jruby.runtime.profile.builtin.ProfiledMethods);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/profile/builtin/ProfiledMethods;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.profile.builtin.ProfiledMethods profiledMethods
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* context */
            putfield org.jruby.runtime.profile.builtin.ProfileData.threadContext:Lorg/jruby/runtime/ThreadContext;
         2: .line 50
            aload 0 /* this */
            aload 2 /* profiledMethods */
            putfield org.jruby.runtime.profile.builtin.ProfileData.profiledMethods:Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
         3: .line 52
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.clear:()V
         4: .line 53
            return
        end local 2 // org.jruby.runtime.profile.builtin.ProfiledMethods profiledMethods
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    5     1          context  Lorg/jruby/runtime/ThreadContext;
            0    5     2  profiledMethods  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
    MethodParameters:
                 Name  Flags
      context          
      profiledMethods  

  private org.jruby.runtime.profile.builtin.ProfiledMethod getProfiledMethod(long);
    descriptor: (J)Lorg/jruby/runtime/profile/builtin/ProfiledMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // long serial
         0: .line 56
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.profiledMethods:Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
            lload 1 /* serial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getProfiledMethod:(J)Lorg/jruby/runtime/profile/builtin/ProfiledMethod;
            areturn
        end local 1 // long serial
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    1     1  serial  J
    MethodParameters:
        Name  Flags
      serial  final

  public void profileEnter(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // long calledMethod
         0: .line 67
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            astore 3 /* parentInvocation */
        start local 3 // org.jruby.runtime.profile.builtin.Invocation parentInvocation
         1: .line 69
            aload 3 /* parentInvocation */
            lload 1 /* calledMethod */
            l2i
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.childInvocationFor:(I)Lorg/jruby/runtime/profile/builtin/Invocation;
            astore 4 /* childInvocation */
        start local 4 // org.jruby.runtime.profile.builtin.Invocation childInvocation
         2: .line 70
            aload 4 /* childInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.incrementCount:()V
         3: .line 72
            aload 0 /* this */
            aload 4 /* childInvocation */
            putfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
         4: .line 73
            return
        end local 4 // org.jruby.runtime.profile.builtin.Invocation childInvocation
        end local 3 // org.jruby.runtime.profile.builtin.Invocation parentInvocation
        end local 1 // long calledMethod
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    5     1      calledMethod  J
            1    5     3  parentInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
            2    5     4   childInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
    MethodParameters:
              Name  Flags
      calledMethod  final

  public void profileExit(long, long);
    descriptor: (JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // long callingMethod
        start local 3 // long startTime
         0: .line 82
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* now */
        start local 5 // long now
         1: .line 83
            lload 5 /* now */
            lload 3 /* startTime */
            lsub
            lstore 7 /* duration */
        start local 7 // long duration
         2: .line 84
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            pop
         3: .line 85
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            lload 7 /* duration */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.addDuration:(J)V
         4: .line 87
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            if_acmpne 13
         5: .line 88
            new org.jruby.runtime.profile.builtin.Invocation
            dup
            iconst_0
            invokespecial org.jruby.runtime.profile.builtin.Invocation.<init>:(I)V
            astore 9 /* newTopInvocation */
        start local 9 // org.jruby.runtime.profile.builtin.Invocation newTopInvocation
         6: .line 90
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            lload 1 /* callingMethod */
            l2i
            aload 9 /* newTopInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.copyWithNewSerialAndParent:(ILorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
         7: .line 89
            astore 10 /* newCurrentInvocation */
        start local 10 // org.jruby.runtime.profile.builtin.Invocation newCurrentInvocation
         8: .line 92
            aload 9 /* newTopInvocation */
            aload 10 /* newCurrentInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.addChild:(Lorg/jruby/runtime/profile/builtin/Invocation;)V
         9: .line 93
            aload 10 /* newCurrentInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.incrementCount:()V
        10: .line 95
            aload 0 /* this */
            aload 9 /* newTopInvocation */
            putfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
        11: .line 96
            aload 0 /* this */
            aload 10 /* newCurrentInvocation */
            putfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
        end local 10 // org.jruby.runtime.profile.builtin.Invocation newCurrentInvocation
        end local 9 // org.jruby.runtime.profile.builtin.Invocation newTopInvocation
        12: .line 98
            goto 24
      StackMap locals: long long
      StackMap stack:
        13: aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getParent:()Lorg/jruby/runtime/profile/builtin/Invocation;
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            if_acmpne 23
            lload 1 /* callingMethod */
            lconst_0
            lcmp
            ifeq 23
        14: .line 99
            new org.jruby.runtime.profile.builtin.Invocation
            dup
            iconst_0
            invokespecial org.jruby.runtime.profile.builtin.Invocation.<init>:(I)V
            astore 9 /* newTopInvocation */
        start local 9 // org.jruby.runtime.profile.builtin.Invocation newTopInvocation
        15: .line 100
            aload 9 /* newTopInvocation */
            lload 1 /* callingMethod */
            l2i
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.childInvocationFor:(I)Lorg/jruby/runtime/profile/builtin/Invocation;
            astore 10 /* newCurrentInvocation */
        start local 10 // org.jruby.runtime.profile.builtin.Invocation newCurrentInvocation
        16: .line 102
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            aload 10 /* newCurrentInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.copyWithNewSerialAndParent:(ILorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
        17: .line 101
            astore 11 /* newChildInvocation */
        start local 11 // org.jruby.runtime.profile.builtin.Invocation newChildInvocation
        18: .line 104
            aload 10 /* newCurrentInvocation */
            aload 11 /* newChildInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.addChild:(Lorg/jruby/runtime/profile/builtin/Invocation;)V
        19: .line 105
            aload 10 /* newCurrentInvocation */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.incrementCount:()V
        20: .line 107
            aload 0 /* this */
            aload 9 /* newTopInvocation */
            putfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
        21: .line 108
            aload 0 /* this */
            aload 10 /* newCurrentInvocation */
            putfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
        end local 11 // org.jruby.runtime.profile.builtin.Invocation newChildInvocation
        end local 10 // org.jruby.runtime.profile.builtin.Invocation newCurrentInvocation
        end local 9 // org.jruby.runtime.profile.builtin.Invocation newTopInvocation
        22: .line 109
            goto 24
        23: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getParent:()Lorg/jruby/runtime/profile/builtin/Invocation;
            putfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
        24: .line 113
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long duration
        end local 5 // long now
        end local 3 // long startTime
        end local 1 // long callingMethod
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   25     0                  this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0   25     1         callingMethod  J
            0   25     3             startTime  J
            1   25     5                   now  J
            2   25     7              duration  J
            6   12     9      newTopInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
            8   12    10  newCurrentInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
           15   22     9      newTopInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
           16   22    10  newCurrentInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
           18   22    11    newChildInvocation  Lorg/jruby/runtime/profile/builtin/Invocation;
    MethodParameters:
               Name  Flags
      callingMethod  final
      startTime      final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 119
            aload 0 /* this */
            sipush 1000
            newarray 10
            putfield org.jruby.runtime.profile.builtin.ProfileData.methodRecursion:[I
         1: .line 120
            aload 0 /* this */
            new org.jruby.runtime.profile.builtin.Invocation
            dup
            iconst_0
            invokespecial org.jruby.runtime.profile.builtin.Invocation.<init>:(I)V
            putfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
         2: .line 121
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            putfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
         3: .line 122
            return
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/runtime/profile/builtin/ProfileData;

  public long totalTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 125
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.childTime:()J
            lreturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfileData;

  public org.jruby.runtime.profile.builtin.Invocation getTopInvocation();
    descriptor: ()Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 132
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfileData;

  public org.jruby.runtime.profile.builtin.Invocation getCurrentInvocation();
    descriptor: ()Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 139
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.currentInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfileData;

  public org.jruby.runtime.ThreadContext getThreadContext();
    descriptor: ()Lorg/jruby/runtime/ThreadContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 146
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.threadContext:Lorg/jruby/runtime/ThreadContext;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfileData;

  public org.jruby.runtime.profile.builtin.Invocation computeResults();
    descriptor: ()Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 154
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.setRecursiveDepths:()V
         1: .line 156
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getChildren:()Lorg/jruby/util/collections/IntHashMap;
            invokevirtual org.jruby.util.collections.IntHashMap.size:()I
            iconst_1
            if_icmpeq 3
         2: .line 157
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokestatic org.jruby.runtime.profile.builtin.ProfileData.setDuration:(Lorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
            areturn
         3: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getChildren:()Lorg/jruby/util/collections/IntHashMap;
            invokevirtual org.jruby.util.collections.IntHashMap.size:()I
            iconst_1
            if_icmpne 13
         4: .line 160
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getChildren:()Lorg/jruby/util/collections/IntHashMap;
            invokevirtual org.jruby.util.collections.IntHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.runtime.profile.builtin.Invocation
            astore 1 /* singleTopChild */
        start local 1 // org.jruby.runtime.profile.builtin.Invocation singleTopChild
         5: .line 161
            aload 1 /* singleTopChild */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            istore 2 /* serial */
        start local 2 // int serial
         6: .line 162
            ldc "JRuby::Profiler.profile"
            aload 0 /* this */
            iload 2 /* serial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.methodName:(I)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
         7: .line 163
            aload 1 /* singleTopChild */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getChildren:()Lorg/jruby/util/collections/IntHashMap;
            invokevirtual org.jruby.util.collections.IntHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.jruby.runtime.profile.builtin.ProfileData org.jruby.runtime.profile.builtin.Invocation int top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.runtime.profile.builtin.Invocation
            astore 3 /* inv */
        start local 3 // org.jruby.runtime.profile.builtin.Invocation inv
         9: .line 164
            aload 3 /* inv */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            istore 2 /* serial */
        10: .line 165
            ldc "JRuby::Profiler.profiled_code"
            aload 0 /* this */
            iload 2 /* serial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.methodName:(I)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 166
            aload 3 /* inv */
            iconst_0
            aconst_null
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.copyWithNewSerialAndParent:(ILorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
            invokestatic org.jruby.runtime.profile.builtin.ProfileData.setDuration:(Lorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
            areturn
        end local 3 // org.jruby.runtime.profile.builtin.Invocation inv
        12: .line 163
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 2 // int serial
        end local 1 // org.jruby.runtime.profile.builtin.Invocation singleTopChild
        13: .line 171
      StackMap locals: org.jruby.runtime.profile.builtin.ProfileData
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokestatic org.jruby.runtime.profile.builtin.ProfileData.setDuration:(Lorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            5   13     1  singleTopChild  Lorg/jruby/runtime/profile/builtin/Invocation;
            6   13     2          serial  I
            9   12     3             inv  Lorg/jruby/runtime/profile/builtin/Invocation;

  private static org.jruby.runtime.profile.builtin.Invocation setDuration(org.jruby.runtime.profile.builtin.Invocation);
    descriptor: (Lorg/jruby/runtime/profile/builtin/Invocation;)Lorg/jruby/runtime/profile/builtin/Invocation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.Invocation inv
         0: .line 175
            aload 0 /* inv */
            aload 0 /* inv */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.childTime:()J
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.setDuration:(J)V
         1: .line 176
            aload 0 /* inv */
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.Invocation inv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   inv  Lorg/jruby/runtime/profile/builtin/Invocation;
    MethodParameters:
      Name  Flags
      inv   

  protected void decRecursionFor(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // int serial
         0: .line 180
            aload 0 /* this */
            iload 1 /* serial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.ensureRecursionSize:(I)V
         1: .line 181
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.methodRecursion:[I
            astore 2 /* mr */
        start local 2 // int[] mr
         2: .line 182
            aload 2 /* mr */
            iload 1 /* serial */
            aload 2 /* mr */
            iload 1 /* serial */
            iaload
            iconst_1
            isub
            iastore
         3: .line 183
            return
        end local 2 // int[] mr
        end local 1 // int serial
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    4     1  serial  I
            2    4     2      mr  [I
    MethodParameters:
        Name  Flags
      serial  

  protected int incRecursionFor(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // int serial
         0: .line 186
            aload 0 /* this */
            iload 1 /* serial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.ensureRecursionSize:(I)V
         1: .line 187
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.methodRecursion:[I
            astore 2 /* mr */
        start local 2 // int[] mr
         2: .line 188
            aload 2 /* mr */
            iload 1 /* serial */
            iaload
            iconst_1
            iadd
            istore 3 /* inc */
        start local 3 // int inc
         3: .line 189
            aload 2 /* mr */
            iload 1 /* serial */
            iload 3 /* inc */
            iastore
         4: .line 190
            iload 3 /* inc */
            ireturn
        end local 3 // int inc
        end local 2 // int[] mr
        end local 1 // int serial
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    5     1  serial  I
            2    5     2      mr  [I
            3    5     3     inc  I
    MethodParameters:
        Name  Flags
      serial  

  private void ensureRecursionSize(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // int index
         0: .line 194
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.methodRecursion:[I
            astore 2 /* mr */
        start local 2 // int[] mr
         1: .line 195
            aload 2 /* mr */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         2: .line 196
            iload 3 /* length */
            iload 1 /* index */
            if_icmpgt 6
         3: .line 197
            iload 1 /* index */
            i2d
            ldc 1.5
            dmul
            dconst_1
            dadd
            d2i
            newarray 10
            astore 4 /* newRecursion */
        start local 4 // int[] newRecursion
         4: .line 198
            aload 2 /* mr */
            iconst_0
            aload 4 /* newRecursion */
            iconst_0
            iload 3 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 199
            aload 0 /* this */
            aload 4 /* newRecursion */
            putfield org.jruby.runtime.profile.builtin.ProfileData.methodRecursion:[I
        end local 4 // int[] newRecursion
         6: .line 201
      StackMap locals: int[] int
      StackMap stack:
            return
        end local 3 // int length
        end local 2 // int[] mr
        end local 1 // int index
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    7     1         index  I
            1    7     2            mr  [I
            2    7     3        length  I
            4    6     4  newRecursion  [I
    MethodParameters:
       Name  Flags
      index  

  private void setRecursiveDepths();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
         0: .line 204
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            istore 1 /* topSerial */
        start local 1 // int topSerial
         1: .line 205
            aload 0 /* this */
            iload 1 /* topSerial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.incRecursionFor:(I)I
            istore 2 /* depth */
        start local 2 // int depth
         2: .line 206
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            iload 2 /* depth */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.setRecursiveDepth:(I)V
         3: .line 207
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfileData.topInvocation:Lorg/jruby/runtime/profile/builtin/Invocation;
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.setRecursiveDepths1:(Lorg/jruby/runtime/profile/builtin/Invocation;)V
         4: .line 208
            return
        end local 2 // int depth
        end local 1 // int topSerial
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            1    5     1  topSerial  I
            2    5     2      depth  I

  private void setRecursiveDepths1(org.jruby.runtime.profile.builtin.Invocation);
    descriptor: (Lorg/jruby/runtime/profile/builtin/Invocation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // org.jruby.runtime.profile.builtin.Invocation inv
         0: .line 213
            aload 1 /* inv */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getChildren:()Lorg/jruby/util/collections/IntHashMap;
            invokevirtual org.jruby.util.collections.IntHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.jruby.runtime.profile.builtin.ProfileData org.jruby.runtime.profile.builtin.Invocation top top top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.runtime.profile.builtin.Invocation
            astore 4 /* child */
        start local 4 // org.jruby.runtime.profile.builtin.Invocation child
         2: .line 214
            aload 4 /* child */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.getMethodSerialNumber:()I
            istore 3 /* childSerial */
        start local 3 // int childSerial
         3: .line 215
            aload 0 /* this */
            iload 3 /* childSerial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.incRecursionFor:(I)I
            istore 2 /* depth */
        start local 2 // int depth
         4: .line 216
            aload 4 /* child */
            iload 2 /* depth */
            invokevirtual org.jruby.runtime.profile.builtin.Invocation.setRecursiveDepth:(I)V
         5: .line 217
            aload 0 /* this */
            aload 4 /* child */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.setRecursiveDepths1:(Lorg/jruby/runtime/profile/builtin/Invocation;)V
         6: .line 219
            aload 0 /* this */
            iload 3 /* childSerial */
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.decRecursionFor:(I)V
        end local 4 // org.jruby.runtime.profile.builtin.Invocation child
        end local 3 // int childSerial
        end local 2 // int depth
         7: .line 213
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 221
            return
        end local 1 // org.jruby.runtime.profile.builtin.Invocation inv
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    9     1          inv  Lorg/jruby/runtime/profile/builtin/Invocation;
            4    7     2        depth  I
            3    7     3  childSerial  I
            2    7     4        child  Lorg/jruby/runtime/profile/builtin/Invocation;
    MethodParameters:
      Name  Flags
      inv   

  java.lang.String methodName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfileData this
        start local 1 // int serial
         0: .line 224
            iload 1 /* serial */
            ifne 1
            ldc "(top)"
            areturn
         1: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* serial */
            i2l
            invokevirtual org.jruby.runtime.profile.builtin.ProfileData.getProfiledMethod:(J)Lorg/jruby/runtime/profile/builtin/ProfiledMethod;
            invokestatic org.jruby.runtime.profile.builtin.ProfilePrinter.methodName:(Lorg/jruby/runtime/profile/builtin/ProfiledMethod;)Ljava/lang/String;
            areturn
        end local 1 // int serial
        end local 0 // org.jruby.runtime.profile.builtin.ProfileData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/runtime/profile/builtin/ProfileData;
            0    2     1  serial  I
    MethodParameters:
        Name  Flags
      serial  final
}
SourceFile: "ProfileData.java"