public final class org.jruby.util.collections.MapBasedClassValue<T> extends org.jruby.util.collections.ClassValue<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.jruby.util.collections.MapBasedClassValue
super_class: org.jruby.util.collections.ClassValue
{
private final java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>, T> cache;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Class<*>;TT;>;
public void <init>(org.jruby.util.collections.ClassValueCalculator<T>);
descriptor: (Lorg/jruby/util/collections/ClassValueCalculator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.jruby.util.collections.ClassValue.<init>:(Lorg/jruby/util/collections/ClassValueCalculator;)V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 128
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.jruby.util.collections.MapBasedClassValue.cache:Ljava/util/concurrent/ConcurrentHashMap;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/util/collections/MapBasedClassValue<TT;>;
0 3 1 calculator Lorg/jruby/util/collections/ClassValueCalculator<TT;>;
Signature: (Lorg/jruby/util/collections/ClassValueCalculator<TT;>;)V
MethodParameters:
Name Flags
calculator
public T get(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.collections.MapBasedClassValue.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
areturn
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
dup
astore 3
monitorenter
3: aload 0
getfield org.jruby.util.collections.MapBasedClassValue.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
4: aload 2
ifnull 6
aload 2
aload 3
monitorexit
5: areturn
6: StackMap locals: org.jruby.util.collections.MapBasedClassValue
StackMap stack:
aload 0
getfield org.jruby.util.collections.MapBasedClassValue.calculator:Lorg/jruby/util/collections/ClassValueCalculator;
aload 1
invokeinterface org.jruby.util.collections.ClassValueCalculator.computeValue:(Ljava/lang/Class;)Ljava/lang/Object;
astore 2
7: aload 0
getfield org.jruby.util.collections.MapBasedClassValue.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 3
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/util/collections/MapBasedClassValue<TT;>;
0 13 1 cls Ljava/lang/Class<*>;
1 13 2 obj TT;
Exception table:
from to target type
3 5 10 any
6 9 10 any
10 11 10 any
Signature: (Ljava/lang/Class<*>;)TT;
MethodParameters:
Name Flags
cls
}
Signature: <T:Ljava/lang/Object;>Lorg/jruby/util/collections/ClassValue<TT;>;
SourceFile: "MapBasedClassValue.java"