public class org.jruby.runtime.profile.builtin.ProfiledMethods
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.runtime.profile.builtin.ProfiledMethods
  super_class: java.lang.Object
{
  private final org.jruby.util.collections.NonBlockingHashMapLong<org.jruby.runtime.profile.builtin.ProfiledMethod> methods;
    descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/NonBlockingHashMapLong<Lorg/jruby/runtime/profile/builtin/ProfiledMethod;>;

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

  public void <init>(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
        start local 1 // org.jruby.Ruby runtime
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 55
            aload 1 /* runtime */
            ifnonnull 3
         2: .line 56
            new java.lang.IllegalArgumentException
            dup
            ldc "Given runtime must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 58
      StackMap locals: org.jruby.runtime.profile.builtin.ProfiledMethods org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            aload 1 /* runtime */
            putfield org.jruby.runtime.profile.builtin.ProfiledMethods.runtime:Lorg/jruby/Ruby;
         4: .line 60
            aload 0 /* this */
            new org.jruby.util.collections.NonBlockingHashMapLong
            dup
            sipush 10000
            invokespecial org.jruby.util.collections.NonBlockingHashMapLong.<init>:(I)V
            putfield org.jruby.runtime.profile.builtin.ProfiledMethods.methods:Lorg/jruby/util/collections/NonBlockingHashMapLong;
         5: .line 61
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
            0    6     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  private org.jruby.Ruby getRuntime();
    descriptor: ()Lorg/jruby/Ruby;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
         0: .line 64
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfiledMethods.runtime:Lorg/jruby/Ruby;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;

  private org.jruby.RubyInstanceConfig getConfig();
    descriptor: ()Lorg/jruby/RubyInstanceConfig;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
         0: .line 68
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;

  private org.jruby.common.RubyWarnings getWarnings();
    descriptor: ()Lorg/jruby/common/RubyWarnings;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
         0: .line 72
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;

  private int getProfileMaxMethods();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
         0: .line 76
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getConfig:()Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getProfileMaxMethods:()I
            ireturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;

  private java.util.concurrent.ConcurrentMap<java.lang.Long, org.jruby.runtime.profile.builtin.ProfiledMethod> getMethods();
    descriptor: ()Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
         0: .line 80
            aload 0 /* this */
            getfield org.jruby.runtime.profile.builtin.ProfiledMethods.methods:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            areturn
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
    Signature: ()Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Long;Lorg/jruby/runtime/profile/builtin/ProfiledMethod;>;

  public void addProfiledMethod(java.lang.String, org.jruby.internal.runtime.methods.DynamicMethod);
    descriptor: (Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.internal.runtime.methods.DynamicMethod method
         0: .line 84
            aload 2 /* method */
            invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getSerialNumber:()J
            lstore 3 /* serial */
        start local 3 // long serial
         1: .line 86
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.size:()I
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getProfileMaxMethods:()I
            if_icmplt 4
         2: .line 87
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getWarnings:()Lorg/jruby/common/RubyWarnings;
            getstatic org.jruby.common.IRubyWarnings$ID.PROFILE_MAX_METHODS_EXCEEDED:Lorg/jruby/common/IRubyWarnings$ID;
            new java.lang.StringBuilder
            dup
            ldc "method count exceeds max of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getConfig:()Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getProfileMaxMethods:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "; no new methods will be profiled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warnOnce:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
         3: .line 88
            return
         4: .line 91
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
            lload 3 /* serial */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            new org.jruby.runtime.profile.builtin.ProfiledMethod
            dup
            aload 1 /* name */
            aload 2 /* method */
            invokespecial org.jruby.runtime.profile.builtin.ProfiledMethod.<init>:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 92
            return
        end local 3 // long serial
        end local 2 // org.jruby.internal.runtime.methods.DynamicMethod method
        end local 1 // java.lang.String name
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
            0    6     1    name  Ljava/lang/String;
            0    6     2  method  Lorg/jruby/internal/runtime/methods/DynamicMethod;
            1    6     3  serial  J
    MethodParameters:
        Name  Flags
      name    
      method  

  public org.jruby.runtime.profile.builtin.ProfiledMethod getProfiledMethod(long);
    descriptor: (J)Lorg/jruby/runtime/profile/builtin/ProfiledMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
        start local 1 // long serial
         0: .line 96
            aload 0 /* this */
            invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
            lload 1 /* serial */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.runtime.profile.builtin.ProfiledMethod
            areturn
        end local 1 // long serial
        end local 0 // org.jruby.runtime.profile.builtin.ProfiledMethods this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/runtime/profile/builtin/ProfiledMethods;
            0    1     1  serial  J
    MethodParameters:
        Name  Flags
      serial  final
}
SourceFile: "ProfiledMethods.java"
InnerClasses:
  public final ID = org.jruby.common.IRubyWarnings$ID of org.jruby.common.IRubyWarnings