final class org.jruby.util.collections.NonBlockingHashMapLong$CHM<TypeV> implements java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.jruby.util.collections.NonBlockingHashMapLong$CHM
super_class: java.lang.Object
{
final org.jruby.util.collections.NonBlockingHashMapLong _nbhml;
descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong;
flags: (0x0010) ACC_FINAL
private final org.jruby.util.collections.Counter _size;
descriptor: Lorg/jruby/util/collections/Counter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.util.collections.Counter _slots;
descriptor: Lorg/jruby/util/collections/Counter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
volatile org.jruby.util.collections.NonBlockingHashMapLong$CHM _newchm;
descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
flags: (0x0040) ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<org.jruby.util.collections.NonBlockingHashMapLong$CHM, org.jruby.util.collections.NonBlockingHashMapLong$CHM> _newchmUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;>;
volatile long _resizers;
descriptor: J
flags: (0x0040) ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.jruby.util.collections.NonBlockingHashMapLong$CHM> _resizerUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;>;
final long[] _keys;
descriptor: [J
flags: (0x0010) ACC_FINAL
final java.lang.Object[] _vals;
descriptor: [Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
volatile long _copyIdx;
descriptor: J
flags: (0x0040) ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.jruby.util.collections.NonBlockingHashMapLong$CHM> _copyIdxUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;>;
volatile long _copyDone;
descriptor: J
flags: (0x0040) ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.jruby.util.collections.NonBlockingHashMapLong$CHM> _copyDoneUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lorg/jruby/util/collections/NonBlockingHashMapLong;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
3: ldc Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ldc Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ldc "_newchm"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
4: putstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchmUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
5: ldc Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ldc "_resizers"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
6: putstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._resizerUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
7: ldc Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ldc "_copyIdx"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
8: putstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyIdxUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
9: ldc Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ldc "_copyDone"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
10: putstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDoneUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
11: return
LocalVariableTable:
Start End Slot Name Signature
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._size:Lorg/jruby/util/collections/Counter;
invokevirtual org.jruby.util.collections.Counter.get:()J
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
public int slots();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._slots:Lorg/jruby/util/collections/Counter;
invokevirtual org.jruby.util.collections.Counter.get:()J
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
final boolean CAS_newchm(org.jruby.util.collections.NonBlockingHashMapLong$CHM);
descriptor: (Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;)Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchmUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 1 1 newchm Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
MethodParameters:
Name Flags
newchm
private final boolean CAS_key(int, long, long);
descriptor: (IJJ)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 2
iload 1
iflt 1
iload 1
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
if_icmplt 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong._unsafe:Lsun/misc/Unsafe;
ifnull 5
3: getstatic org.jruby.util.collections.NonBlockingHashMapLong._Lbase:I
iload 1
getstatic org.jruby.util.collections.NonBlockingHashMapLong._Lscale:I
imul
iadd
istore 6
start local 6 4: getstatic org.jruby.util.collections.NonBlockingHashMapLong._unsafe:Lsun/misc/Unsafe;
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
iload 6
i2l
lload 2
lload 4
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ireturn
end local 6 5: StackMap locals:
StackMap stack:
aload 0
iload 1
lload 2
lload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_keyFallback:(IJJ)Z
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 6 1 idx I
0 6 2 old J
0 6 4 key J
4 5 6 rawIndex I
MethodParameters:
Name Flags
idx
old
key
private final boolean CAS_keyFallback(int, long, long);
descriptor: (IJJ)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
astore 6
start local 6 1: aload 6
dup
astore 7
monitorenter
2: aload 6
iload 1
laload
lload 2
lcmp
ifeq 4
aload 7
monitorexit
3: iconst_0
ireturn
4: StackMap locals: long[] long[]
StackMap stack:
aload 6
iload 1
lload 4
lastore
5: aload 7
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 7
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 10 1 idx I
0 10 2 old J
0 10 4 key J
1 10 6 keys [J
Exception table:
from to target type
2 3 7 any
4 6 7 any
7 8 7 any
MethodParameters:
Name Flags
idx
old
key
private final boolean CAS_val(int, java.lang.Object, java.lang.Object);
descriptor: (ILjava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 2
iload 1
iflt 1
iload 1
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
arraylength
if_icmplt 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong._unsafe:Lsun/misc/Unsafe;
ifnull 5
3: getstatic org.jruby.util.collections.NonBlockingHashMapLong._Obase:I
iload 1
getstatic org.jruby.util.collections.NonBlockingHashMapLong._Oscale:I
imul
iadd
istore 4
start local 4 4: getstatic org.jruby.util.collections.NonBlockingHashMapLong._unsafe:Lsun/misc/Unsafe;
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 4
i2l
aload 2
aload 3
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 4 5: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 3
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_valFallback:(ILjava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 6 1 idx I
0 6 2 old Ljava/lang/Object;
0 6 3 val Ljava/lang/Object;
4 5 4 rawIndex I
MethodParameters:
Name Flags
idx
old
val
private final boolean CAS_valFallback(int, java.lang.Object, java.lang.Object);
descriptor: (ILjava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
astore 4
start local 4 1: aload 4
dup
astore 5
monitorenter
2: aload 4
iload 1
aaload
aload 2
if_acmpeq 4
aload 5
monitorexit
3: iconst_0
ireturn
4: StackMap locals: java.lang.Object[] java.lang.Object[]
StackMap stack:
aload 4
iload 1
aload 3
aastore
5: aload 5
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 5
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 10 1 idx I
0 10 2 old Ljava/lang/Object;
0 10 3 val Ljava/lang/Object;
1 10 4 vals [Ljava/lang/Object;
Exception table:
from to target type
2 3 7 any
4 6 7 any
7 8 7 any
MethodParameters:
Name Flags
idx
old
val
void <init>(org.jruby.util.collections.NonBlockingHashMapLong, org.jruby.util.collections.Counter, int);
descriptor: (Lorg/jruby/util/collections/NonBlockingHashMapLong;Lorg/jruby/util/collections/Counter;I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lconst_0
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyIdx:J
2: aload 0
lconst_0
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDone:J
3: aload 0
aload 1
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
4: aload 0
aload 2
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._size:Lorg/jruby/util/collections/Counter;
5: aload 0
new org.jruby.util.collections.Counter
dup
invokespecial org.jruby.util.collections.Counter.<init>:()V
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._slots:Lorg/jruby/util/collections/Counter;
6: aload 0
iconst_1
iload 3
ishl
newarray 11
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
7: aload 0
iconst_1
iload 3
ishl
anewarray java.lang.Object
putfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 9 1 nbhml Lorg/jruby/util/collections/NonBlockingHashMapLong;
0 9 2 size Lorg/jruby/util/collections/Counter;
0 9 3 logsize I
MethodParameters:
Name Flags
nbhml final
size
logsize final
private final java.lang.Object get_impl(long);
descriptor: (J)Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
istore 3
start local 3 1: lload 1
iload 3
iconst_1
isub
i2l
land
l2i
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
iload 4
laload
lstore 6
start local 6 4: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 4
aaload
astore 8
start local 8 5: lload 6
lconst_0
lcmp
ifne 6
aconst_null
areturn
6: StackMap locals: long java.lang.Object
StackMap stack:
lload 1
lload 6
lcmp
ifne 11
7: aload 8
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifne 10
8: aload 8
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 9
aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 8
areturn
10: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot_and_check:(ILjava/lang/Object;)Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
lload 1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.get_impl:(J)Ljava/lang/Object;
areturn
11: StackMap locals:
StackMap stack:
iinc 5 1
iload 5
iload 3
invokestatic org.jruby.util.collections.NonBlockingHashMapLong.reprobe_limit:(I)I
if_icmplt 16
12: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ifnonnull 14
13: aconst_null
goto 15
14: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot_and_check:(ILjava/lang/Object;)Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
lload 1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.get_impl:(J)Ljava/lang/Object;
15: StackMap locals:
StackMap stack: java.lang.Object
areturn
16: StackMap locals:
StackMap stack:
iload 4
iconst_1
iadd
iload 3
iconst_1
isub
iand
istore 4
end local 8 end local 6 17: goto 3
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 18 1 key J
1 18 3 len I
2 18 4 idx I
3 18 5 reprobe_cnt I
4 17 6 K J
5 17 8 V Ljava/lang/Object;
MethodParameters:
Name Flags
key final
private final java.lang.Object putIfMatch(long, java.lang.Object, java.lang.Object);
descriptor: (JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 3 start local 4 0: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 1
aload 3
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 2
aload 3
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 3
aload 4
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
istore 5
start local 5 4: lload 1
iload 5
iconst_1
isub
i2l
land
l2i
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: lconst_0
lstore 8
start local 8 7: aconst_null
astore 10
start local 10 8: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM long java.lang.Object java.lang.Object int int int long java.lang.Object
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 6
aaload
astore 10
9: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
iload 6
laload
lstore 8
10: lload 8
lconst_0
lcmp
ifne 17
11: aload 3
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 12
aload 3
areturn
12: StackMap locals:
StackMap stack:
aload 0
iload 6
lconst_0
lload 1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_key:(IJJ)Z
ifeq 15
13: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._slots:Lorg/jruby/util/collections/Counter;
lconst_1
invokevirtual org.jruby.util.collections.Counter.add:(J)V
14: goto 25
15: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
iload 6
laload
lstore 8
16: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 17
lload 8
lconst_0
lcmp
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
lload 8
lload 1
lcmp
ifne 19
18: goto 25
19: StackMap locals:
StackMap stack:
iinc 7 1
iload 7
iload 5
invokestatic org.jruby.util.collections.NonBlockingHashMapLong.reprobe_limit:(I)I
if_icmplt 23
20: aload 0
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.resize:()Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 11
start local 11 21: aload 4
ifnull 22
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.help_copy:()V
22: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM
StackMap stack:
aload 11
lload 1
aload 3
aload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.putIfMatch:(JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 11 23: StackMap locals:
StackMap stack:
iload 6
iconst_1
iadd
iload 5
iconst_1
isub
iand
istore 6
24: goto 8
25: StackMap locals:
StackMap stack:
aload 3
aload 10
if_acmpne 26
aload 10
areturn
26: StackMap locals:
StackMap stack:
aload 10
ifnonnull 27
aload 0
iload 7
iload 5
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.tableFull:(II)Z
ifne 28
27: StackMap locals:
StackMap stack:
aload 10
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 30
28: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.resize:()Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
pop
29: aload 0
iload 6
aload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot_and_check:(ILjava/lang/Object;)Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
lload 1
aload 3
aload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.putIfMatch:(JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
30: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 31
aload 10
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 31
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
31: StackMap locals:
StackMap stack:
aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.NO_MATCH_OLD:Ljava/lang/Object;
if_acmpeq 37
32: aload 10
aload 4
if_acmpeq 37
33: aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.MATCH_ANY:Ljava/lang/Object;
if_acmpne 34
aload 10
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpeq 34
aload 10
ifnonnull 37
34: StackMap locals:
StackMap stack:
aload 10
ifnonnull 35
aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpeq 37
35: StackMap locals:
StackMap stack:
aload 4
ifnull 36
aload 4
aload 10
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 37
36: StackMap locals:
StackMap stack:
aload 10
areturn
37: StackMap locals:
StackMap stack:
aload 0
iload 6
aload 10
aload 3
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_val:(ILjava/lang/Object;Ljava/lang/Object;)Z
ifeq 45
38: aload 4
ifnull 42
39: aload 10
ifnull 40
aload 10
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 41
StackMap locals:
StackMap stack:
40: aload 3
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpeq 41
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._size:Lorg/jruby/util/collections/Counter;
lconst_1
invokevirtual org.jruby.util.collections.Counter.add:(J)V
41: StackMap locals:
StackMap stack:
aload 10
ifnull 42
aload 10
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpeq 42
aload 3
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 42
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._size:Lorg/jruby/util/collections/Counter;
ldc -1
invokevirtual org.jruby.util.collections.Counter.add:(J)V
42: StackMap locals:
StackMap stack:
aload 10
ifnonnull 43
aload 4
ifnull 43
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
goto 44
StackMap locals:
StackMap stack:
43: aload 10
StackMap locals:
StackMap stack: java.lang.Object
44: areturn
45: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 6
aaload
astore 10
46: aload 10
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 30
47: aload 0
iload 6
aload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot_and_check:(ILjava/lang/Object;)Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
lload 1
aload 3
aload 4
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.putIfMatch:(JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 48 1 key J
0 48 3 putval Ljava/lang/Object;
0 48 4 expVal Ljava/lang/Object;
4 48 5 len I
5 48 6 idx I
6 48 7 reprobe_cnt I
7 48 8 K J
8 48 10 V Ljava/lang/Object;
21 23 11 newchm Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
MethodParameters:
Name Flags
key final
putval final
expVal final
private final boolean tableFull(int, int);
descriptor: (II)Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 10
if_icmplt 3
1: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._slots:Lorg/jruby/util/collections/Counter;
invokevirtual org.jruby.util.collections.Counter.estimate_get:()J
iload 2
invokestatic org.jruby.util.collections.NonBlockingHashMapLong.reprobe_limit:(I)I
i2l
2: lcmp
iflt 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 4 1 reprobe_cnt I
0 4 2 len I
MethodParameters:
Name Flags
reprobe_cnt
len
private final org.jruby.util.collections.NonBlockingHashMapLong$CHM resize();
descriptor: ()Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=8, locals=11, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
istore 2
start local 2 4: aload 0
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.size:()I
istore 3
start local 3 5: iload 3
istore 4
start local 4 6: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
getfield org.jruby.util.collections.NonBlockingHashMapLong._opt_for_space:Z
ifeq 10
7: iload 3
iload 2
iconst_1
ishr
if_icmplt 14
8: iload 2
iconst_1
ishl
istore 4
9: goto 14
10: StackMap locals: int int int
StackMap stack:
iload 3
iload 2
iconst_2
ishr
if_icmplt 14
11: iload 2
iconst_1
ishl
istore 4
12: iload 3
iload 2
iconst_1
ishr
if_icmplt 14
13: iload 2
iconst_2
ishl
istore 4
14: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 5
start local 5 15: iload 4
iload 2
if_icmpgt 19
16: lload 5
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
getfield org.jruby.util.collections.NonBlockingHashMapLong._last_resize_milli:J
ldc 10000
ladd
17: lcmp
ifgt 19
18: iload 2
iconst_1
ishl
istore 4
19: StackMap locals: long
StackMap stack:
iload 4
iload 2
if_icmpge 20
iload 2
istore 4
20: StackMap locals:
StackMap stack:
iconst_4
istore 7
start local 7 21: goto 23
StackMap locals: int
StackMap stack:
22: iinc 7 1
StackMap locals:
StackMap stack:
23: iconst_1
iload 7
ishl
iload 4
if_icmplt 22
24: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._resizers:J
lstore 8
start local 8 25: goto 27
26: StackMap locals: long
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._resizers:J
lstore 8
27: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._resizerUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 8
lload 8
lconst_1
ladd
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 26
28: iconst_1
iload 7
ishl
iconst_1
ishl
iconst_4
iadd
iconst_3
ishl
bipush 20
ishr
istore 10
start local 10 29: lload 8
ldc 2
lcmp
iflt 36
iload 10
ifle 36
30: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 1
31: aload 1
ifnull 33
32: aload 1
areturn
33: StackMap locals: int
StackMap stack:
bipush 8
iload 10
imul
i2l
invokestatic java.lang.Thread.sleep:(J)V
34: goto 36
StackMap locals:
StackMap stack: java.lang.Exception
35: pop
36: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 1
37: aload 1
ifnull 39
38: aload 1
areturn
39: StackMap locals:
StackMap stack:
new org.jruby.util.collections.NonBlockingHashMapLong$CHM
dup
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._size:Lorg/jruby/util/collections/Counter;
iload 7
invokespecial org.jruby.util.collections.NonBlockingHashMapLong$CHM.<init>:(Lorg/jruby/util/collections/NonBlockingHashMapLong;Lorg/jruby/util/collections/Counter;I)V
astore 1
40: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ifnull 42
41: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
areturn
42: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_newchm:(Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;)Z
ifne 44
43: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 1
44: StackMap locals:
StackMap stack:
aload 1
areturn
end local 10 end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
1 45 1 newchm Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
4 45 2 oldlen I
5 45 3 sz I
6 45 4 newsz I
15 45 5 tm J
21 45 7 log2 I
25 45 8 r J
29 45 10 megs I
Exception table:
from to target type
33 34 35 Class java.lang.Exception
private final void help_copy_impl(boolean);
descriptor: (Z)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
astore 2
start local 2 1: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 2
aload 2
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
istore 3
start local 3 3: iload 3
sipush 1024
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 4: iconst_m1
istore 5
start local 5 5: sipush -9999
istore 6
start local 6 6: goto 27
7: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM int org.jruby.util.collections.NonBlockingHashMapLong$CHM int int int int
StackMap stack:
iload 5
iconst_m1
if_icmpne 15
8: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyIdx:J
l2i
istore 6
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyIdx:J
l2i
istore 6
11: StackMap locals:
StackMap stack:
iload 6
iload 3
iconst_1
ishl
if_icmpge 13
12: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyIdxUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
iload 6
i2l
iload 6
iload 4
iadd
i2l
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 10
13: StackMap locals:
StackMap stack:
iload 6
iload 3
iconst_1
ishl
if_icmplt 15
14: iload 6
istore 5
15: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 16: iconst_0
istore 8
start local 8 17: goto 21
18: StackMap locals: int int
StackMap stack:
aload 0
iload 6
iload 8
iadd
iload 3
iconst_1
isub
iand
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot:(I)Z
ifeq 20
19: iinc 7 1
20: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
21: iload 8
iload 4
if_icmplt 18
end local 8 22: iload 7
ifle 24
23: aload 0
iload 7
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_check_and_promote:(I)V
24: StackMap locals:
StackMap stack:
iload 6
iload 4
iadd
istore 6
25: iload 1
ifne 27
iload 5
iconst_m1
if_icmpne 27
26: return
end local 7 27: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDone:J
iload 3
i2l
lcmp
iflt 7
28: aload 0
iconst_0
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_check_and_promote:(I)V
29: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 30 1 copy_all Z
1 30 2 newchm Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
3 30 3 oldlen I
4 30 4 MIN_COPY_WORK I
5 30 5 panic_start I
6 30 6 copyidx I
16 27 7 workdone I
17 22 8 i I
MethodParameters:
Name Flags
copy_all final
private final org.jruby.util.collections.NonBlockingHashMapLong$CHM copy_slot_and_check(int, java.lang.Object);
descriptor: (ILjava/lang/Object;)Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_slot:(I)Z
ifeq 3
2: aload 0
iconst_1
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.copy_check_and_promote:(I)V
3: StackMap locals:
StackMap stack:
aload 2
ifnull 4
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.help_copy:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 5 1 idx I
0 5 2 should_help Ljava/lang/Object;
MethodParameters:
Name Flags
idx
should_help
private final void copy_check_and_promote(int);
descriptor: (I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
istore 2
start local 2 1: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDone:J
lstore 3
start local 3 2: lload 3
iload 1
i2l
ladd
lstore 5
start local 5 3: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 4
lload 5
iload 2
i2l
lcmp
ifle 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int long long
StackMap stack:
iload 1
ifle 10
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDone:J
lstore 3
7: lload 3
iload 1
i2l
ladd
lstore 5
8: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 9
lload 5
iload 2
i2l
lcmp
ifle 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM._copyDoneUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 3
lload 5
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 6
10: StackMap locals:
StackMap stack:
lload 5
iload 2
i2l
lcmp
ifne 14
11: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
getfield org.jruby.util.collections.NonBlockingHashMapLong._chm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
aload 0
if_acmpne 14
12: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
aload 0
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.CAS_chm:(Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;)Z
ifeq 14
13: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._nbhml:Lorg/jruby/util/collections/NonBlockingHashMapLong;
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.jruby.util.collections.NonBlockingHashMapLong._last_resize_milli:J
14: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 15 1 workdone I
1 15 2 oldlen I
2 15 3 copyDone J
3 15 5 nowDone J
MethodParameters:
Name Flags
workdone
private boolean copy_slot(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: goto 2
start local 2 1: StackMap locals: long
StackMap stack:
aload 0
iload 1
lconst_0
iload 1
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
arraylength
iadd
i2l
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_key:(IJJ)Z
pop
end local 2 2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
iload 1
laload
dup2
lstore 2
start local 2 3: lconst_0
lcmp
ifeq 1
4: aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 1
aaload
astore 4
start local 4 5: goto 16
6: StackMap locals: long java.lang.Object
StackMap stack:
aload 4
ifnull 7
aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 8
StackMap locals:
StackMap stack:
7: getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBPRIME:Lorg/jruby/util/collections/NonBlockingHashMapLong$Prime;
goto 9
StackMap locals:
StackMap stack:
8: new org.jruby.util.collections.NonBlockingHashMapLong$Prime
dup
aload 4
invokespecial org.jruby.util.collections.NonBlockingHashMapLong$Prime.<init>:(Ljava/lang/Object;)V
StackMap locals:
StackMap stack: org.jruby.util.collections.NonBlockingHashMapLong$Prime
9: astore 5
start local 5 10: aload 0
iload 1
aload 4
aload 5
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_val:(ILjava/lang/Object;Ljava/lang/Object;)Z
ifeq 15
11: aload 5
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBPRIME:Lorg/jruby/util/collections/NonBlockingHashMapLong$Prime;
if_acmpne 13
12: iconst_1
ireturn
13: StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$Prime
StackMap stack:
aload 5
astore 4
14: goto 17
15: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 1
aaload
astore 4
end local 5 16: StackMap locals:
StackMap stack:
aload 4
instanceof org.jruby.util.collections.NonBlockingHashMapLong$Prime
ifeq 6
17: StackMap locals:
StackMap stack:
aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBPRIME:Lorg/jruby/util/collections/NonBlockingHashMapLong$Prime;
if_acmpne 18
iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 4
checkcast org.jruby.util.collections.NonBlockingHashMapLong$Prime
getfield org.jruby.util.collections.NonBlockingHashMapLong$Prime._V:Ljava/lang/Object;
astore 5
start local 5 19: getstatic org.jruby.util.collections.NonBlockingHashMapLong$CHM.$assertionsDisabled:Z
ifne 20
aload 5
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
if_acmpne 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
lload 2
aload 5
aconst_null
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.putIfMatch:(JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 6
start local 6 23: goto 25
24: StackMap locals: int
StackMap stack:
aload 0
getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._vals:[Ljava/lang/Object;
iload 1
aaload
astore 4
25: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 4
getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBPRIME:Lorg/jruby/util/collections/NonBlockingHashMapLong$Prime;
invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.CAS_val:(ILjava/lang/Object;Ljava/lang/Object;)Z
ifeq 24
26: iload 6
ireturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM<TTypeV;>;
0 27 1 idx I
1 2 2 key J
3 27 2 key J
5 27 4 oldval Ljava/lang/Object;
10 16 5 box Lorg/jruby/util/collections/NonBlockingHashMapLong$Prime;
19 27 5 old_unboxed Ljava/lang/Object;
23 27 6 copied_into_new Z
MethodParameters:
Name Flags
idx
}
Signature: <TypeV:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Serializable;
SourceFile: "NonBlockingHashMapLong.java"
NestHost: org.jruby.util.collections.NonBlockingHashMapLong
InnerClasses:
private final CHM = org.jruby.util.collections.NonBlockingHashMapLong$CHM of org.jruby.util.collections.NonBlockingHashMapLong
private final Prime = org.jruby.util.collections.NonBlockingHashMapLong$Prime of org.jruby.util.collections.NonBlockingHashMapLong