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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Given runtime must not be null."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.jruby.runtime.profile.builtin.ProfiledMethods org.jruby.Ruby
StackMap stack:
aload 0
aload 1
putfield org.jruby.runtime.profile.builtin.ProfiledMethods.runtime:Lorg/jruby/Ruby;
4: aload 0
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: return
end local 1 end local 0 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 0: aload 0
getfield org.jruby.runtime.profile.builtin.ProfiledMethods.runtime:Lorg/jruby/Ruby;
areturn
end local 0 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 0: aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
areturn
end local 0 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 0: aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
areturn
end local 0 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 0: aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getConfig:()Lorg/jruby/RubyInstanceConfig;
invokevirtual org.jruby.RubyInstanceConfig.getProfileMaxMethods:()I
ireturn
end local 0 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 0: aload 0
getfield org.jruby.runtime.profile.builtin.ProfiledMethods.methods:Lorg/jruby/util/collections/NonBlockingHashMapLong;
areturn
end local 0 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 start local 1 start local 2 0: aload 2
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getSerialNumber:()J
lstore 3
start local 3 1: aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.size:()I
aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getProfileMaxMethods:()I
if_icmplt 4
2: aload 0
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
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: return
4: StackMap locals: long
StackMap stack:
aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
new org.jruby.runtime.profile.builtin.ProfiledMethod
dup
aload 1
aload 2
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: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual org.jruby.runtime.profile.builtin.ProfiledMethods.getMethods:()Ljava/util/concurrent/ConcurrentMap;
lload 1
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 end local 0 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