public final class io.reactivex.internal.util.OpenHashSet<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.util.OpenHashSet
super_class: java.lang.Object
{
private static final int INT_PHI;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1640531527
final float loadFactor;
descriptor: F
flags: (0x0010) ACC_FINAL
int mask;
descriptor: I
flags: (0x0000)
int size;
descriptor: I
flags: (0x0000)
int maxSize;
descriptor: I
flags: (0x0000)
T[] keys;
descriptor: [Ljava/lang/Object;
flags: (0x0000)
Signature: [TT;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // io.reactivex.internal.util.OpenHashSet this
0: .line 37
aload 0 /* this */
bipush 16
ldc 0.75
invokespecial io.reactivex.internal.util.OpenHashSet.<init>:(IF)V
1: .line 38
return
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // io.reactivex.internal.util.OpenHashSet this
start local 1 // int capacity
0: .line 45
aload 0 /* this */
iload 1 /* capacity */
ldc 0.75
invokespecial io.reactivex.internal.util.OpenHashSet.<init>:(IF)V
1: .line 46
return
end local 1 // int capacity
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
0 2 1 capacity I
MethodParameters:
Name Flags
capacity
public void <init>(int, float);
descriptor: (IF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 // io.reactivex.internal.util.OpenHashSet this
start local 1 // int capacity
start local 2 // float loadFactor
0: .line 49
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 50
aload 0 /* this */
fload 2 /* loadFactor */
putfield io.reactivex.internal.util.OpenHashSet.loadFactor:F
2: .line 51
iload 1 /* capacity */
invokestatic io.reactivex.internal.util.Pow2.roundToPowerOfTwo:(I)I
istore 3 /* c */
start local 3 // int c
3: .line 52
aload 0 /* this */
iload 3 /* c */
iconst_1
isub
putfield io.reactivex.internal.util.OpenHashSet.mask:I
4: .line 53
aload 0 /* this */
fload 2 /* loadFactor */
iload 3 /* c */
i2f
fmul
f2i
putfield io.reactivex.internal.util.OpenHashSet.maxSize:I
5: .line 54
aload 0 /* this */
iload 3 /* c */
anewarray java.lang.Object
putfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
6: .line 55
return
end local 3 // int c
end local 2 // float loadFactor
end local 1 // int capacity
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
0 7 1 capacity I
0 7 2 loadFactor F
3 7 3 c I
MethodParameters:
Name Flags
capacity
loadFactor
public boolean add();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 // io.reactivex.internal.util.OpenHashSet this
start local 1 // java.lang.Object value
0: .line 58
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
astore 2 /* a */
start local 2 // java.lang.Object[] a
1: .line 59
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.mask:I
istore 3 /* m */
start local 3 // int m
2: .line 61
aload 1 /* value */
invokevirtual java.lang.Object.hashCode:()I
invokestatic io.reactivex.internal.util.OpenHashSet.mix:(I)I
iload 3 /* m */
iand
istore 4 /* pos */
start local 4 // int pos
3: .line 62
aload 2 /* a */
iload 4 /* pos */
aaload
astore 5 /* curr */
start local 5 // java.lang.Object curr
4: .line 63
aload 5 /* curr */
ifnull 13
5: .line 64
aload 5 /* curr */
aload 1 /* value */
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
6: .line 65
iconst_0
ireturn
7: .line 68
StackMap locals: io.reactivex.internal.util.OpenHashSet java.lang.Object java.lang.Object[] int int java.lang.Object
StackMap stack:
iload 4 /* pos */
iconst_1
iadd
iload 3 /* m */
iand
istore 4 /* pos */
8: .line 69
aload 2 /* a */
iload 4 /* pos */
aaload
astore 5 /* curr */
9: .line 70
aload 5 /* curr */
ifnonnull 11
10: .line 71
goto 13
11: .line 73
StackMap locals:
StackMap stack:
aload 5 /* curr */
aload 1 /* value */
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
12: .line 74
iconst_0
ireturn
13: .line 78
StackMap locals:
StackMap stack:
aload 2 /* a */
iload 4 /* pos */
aload 1 /* value */
aastore
14: .line 79
aload 0 /* this */
dup
getfield io.reactivex.internal.util.OpenHashSet.size:I
iconst_1
iadd
dup_x1
putfield io.reactivex.internal.util.OpenHashSet.size:I
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.maxSize:I
if_icmplt 16
15: .line 80
aload 0 /* this */
invokevirtual io.reactivex.internal.util.OpenHashSet.rehash:()V
16: .line 82
StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 // java.lang.Object curr
end local 4 // int pos
end local 3 // int m
end local 2 // java.lang.Object[] a
end local 1 // java.lang.Object value
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
0 17 1 value TT;
1 17 2 a [Ljava/lang/Object;
2 17 3 m I
3 17 4 pos I
4 17 5 curr TT;
Signature: (TT;)Z
MethodParameters:
Name Flags
value
public boolean remove();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 // io.reactivex.internal.util.OpenHashSet this
start local 1 // java.lang.Object value
0: .line 85
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
astore 2 /* a */
start local 2 // java.lang.Object[] a
1: .line 86
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.mask:I
istore 3 /* m */
start local 3 // int m
2: .line 87
aload 1 /* value */
invokevirtual java.lang.Object.hashCode:()I
invokestatic io.reactivex.internal.util.OpenHashSet.mix:(I)I
iload 3 /* m */
iand
istore 4 /* pos */
start local 4 // int pos
3: .line 88
aload 2 /* a */
iload 4 /* pos */
aaload
astore 5 /* curr */
start local 5 // java.lang.Object curr
4: .line 89
aload 5 /* curr */
ifnonnull 6
5: .line 90
iconst_0
ireturn
6: .line 92
StackMap locals: io.reactivex.internal.util.OpenHashSet java.lang.Object java.lang.Object[] int int java.lang.Object
StackMap stack:
aload 5 /* curr */
aload 1 /* value */
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
7: .line 93
aload 0 /* this */
iload 4 /* pos */
aload 2 /* a */
iload 3 /* m */
invokevirtual io.reactivex.internal.util.OpenHashSet.removeEntry:(I[Ljava/lang/Object;I)Z
ireturn
8: .line 96
StackMap locals:
StackMap stack:
iload 4 /* pos */
iconst_1
iadd
iload 3 /* m */
iand
istore 4 /* pos */
9: .line 97
aload 2 /* a */
iload 4 /* pos */
aaload
astore 5 /* curr */
10: .line 98
aload 5 /* curr */
ifnonnull 12
11: .line 99
iconst_0
ireturn
12: .line 101
StackMap locals:
StackMap stack:
aload 5 /* curr */
aload 1 /* value */
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
13: .line 102
aload 0 /* this */
iload 4 /* pos */
aload 2 /* a */
iload 3 /* m */
invokevirtual io.reactivex.internal.util.OpenHashSet.removeEntry:(I[Ljava/lang/Object;I)Z
ireturn
end local 5 // java.lang.Object curr
end local 4 // int pos
end local 3 // int m
end local 2 // java.lang.Object[] a
end local 1 // java.lang.Object value
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
0 14 1 value TT;
1 14 2 a [Ljava/lang/Object;
2 14 3 m I
3 14 4 pos I
4 14 5 curr TT;
Signature: (TT;)Z
MethodParameters:
Name Flags
value
boolean removeEntry(int, T[], );
descriptor: (I[Ljava/lang/Object;I)Z
flags: (0x0000)
Code:
stack=3, locals=7, args_size=4
start local 0 // io.reactivex.internal.util.OpenHashSet this
start local 1 // int pos
start local 2 // java.lang.Object[] a
start local 3 // int m
0: .line 108
aload 0 /* this */
dup
getfield io.reactivex.internal.util.OpenHashSet.size:I
iconst_1
isub
putfield io.reactivex.internal.util.OpenHashSet.size:I
1: .line 114
StackMap locals:
StackMap stack:
iload 1 /* pos */
istore 4 /* last */
start local 4 // int last
2: .line 115
iload 1 /* pos */
iconst_1
iadd
iload 3 /* m */
iand
istore 1 /* pos */
3: .line 117
StackMap locals: int
StackMap stack:
aload 2 /* a */
iload 1 /* pos */
aaload
astore 6 /* curr */
start local 6 // java.lang.Object curr
4: .line 118
aload 6 /* curr */
ifnonnull 7
5: .line 119
aload 2 /* a */
iload 4 /* last */
aconst_null
aastore
6: .line 120
iconst_1
ireturn
7: .line 122
StackMap locals: io.reactivex.internal.util.OpenHashSet int java.lang.Object[] int int top java.lang.Object
StackMap stack:
aload 6 /* curr */
invokevirtual java.lang.Object.hashCode:()I
invokestatic io.reactivex.internal.util.OpenHashSet.mix:(I)I
iload 3 /* m */
iand
istore 5 /* slot */
start local 5 // int slot
8: .line 124
iload 4 /* last */
iload 1 /* pos */
if_icmpgt 9
iload 4 /* last */
iload 5 /* slot */
if_icmpge 13
iload 5 /* slot */
iload 1 /* pos */
if_icmple 11
goto 13
StackMap locals: io.reactivex.internal.util.OpenHashSet int java.lang.Object[] int int int java.lang.Object
StackMap stack:
9: iload 4 /* last */
iload 5 /* slot */
if_icmplt 11
iload 5 /* slot */
iload 1 /* pos */
if_icmple 11
10: .line 125
goto 13
11: .line 128
StackMap locals:
StackMap stack:
iload 1 /* pos */
iconst_1
iadd
iload 3 /* m */
iand
istore 1 /* pos */
end local 6 // java.lang.Object curr
end local 5 // int slot
12: .line 116
goto 3
start local 5 // int slot
start local 6 // java.lang.Object curr
13: .line 130
StackMap locals:
StackMap stack:
aload 2 /* a */
iload 4 /* last */
aload 6 /* curr */
aastore
end local 6 // java.lang.Object curr
end local 5 // int slot
end local 4 // int last
14: .line 113
goto 1
end local 3 // int m
end local 2 // java.lang.Object[] a
end local 1 // int pos
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
0 15 1 pos I
0 15 2 a [Ljava/lang/Object;
0 15 3 m I
2 14 4 last I
8 12 5 slot I
13 14 5 slot I
4 12 6 curr TT;
13 14 6 curr TT;
Signature: (I[TT;I)Z
MethodParameters:
Name Flags
pos
a
m
void rehash();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=1
start local 0 // io.reactivex.internal.util.OpenHashSet this
0: .line 136
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
astore 1 /* a */
start local 1 // java.lang.Object[] a
1: .line 137
aload 1 /* a */
arraylength
istore 2 /* i */
start local 2 // int i
2: .line 138
iload 2 /* i */
iconst_1
ishl
istore 3 /* newCap */
start local 3 // int newCap
3: .line 139
iload 3 /* newCap */
iconst_1
isub
istore 4 /* m */
start local 4 // int m
4: .line 141
iload 3 /* newCap */
anewarray java.lang.Object
astore 5 /* b */
start local 5 // java.lang.Object[] b
5: .line 143
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.size:I
istore 6 /* j */
start local 6 // int j
6: goto 13
7: .line 144
StackMap locals: io.reactivex.internal.util.OpenHashSet java.lang.Object[] int int int java.lang.Object[] int
StackMap stack:
aload 1 /* a */
iinc 2 /* i */ -1
iload 2 /* i */
aaload
ifnull 7
8: .line 145
aload 1 /* a */
iload 2 /* i */
aaload
invokevirtual java.lang.Object.hashCode:()I
invokestatic io.reactivex.internal.util.OpenHashSet.mix:(I)I
iload 4 /* m */
iand
istore 7 /* pos */
start local 7 // int pos
9: .line 146
aload 5 /* b */
iload 7 /* pos */
aaload
ifnull 12
10: .line 148
StackMap locals: int
StackMap stack:
iload 7 /* pos */
iconst_1
iadd
iload 4 /* m */
iand
istore 7 /* pos */
11: .line 149
aload 5 /* b */
iload 7 /* pos */
aaload
ifnonnull 10
12: .line 154
StackMap locals:
StackMap stack:
aload 5 /* b */
iload 7 /* pos */
aload 1 /* a */
iload 2 /* i */
aaload
aastore
end local 7 // int pos
13: .line 143
StackMap locals:
StackMap stack:
iload 6 /* j */
iinc 6 /* j */ -1
ifne 7
end local 6 // int j
14: .line 157
aload 0 /* this */
iload 4 /* m */
putfield io.reactivex.internal.util.OpenHashSet.mask:I
15: .line 158
aload 0 /* this */
iload 3 /* newCap */
i2f
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.loadFactor:F
fmul
f2i
putfield io.reactivex.internal.util.OpenHashSet.maxSize:I
16: .line 159
aload 0 /* this */
aload 5 /* b */
putfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
17: .line 160
return
end local 5 // java.lang.Object[] b
end local 4 // int m
end local 3 // int newCap
end local 2 // int i
end local 1 // java.lang.Object[] a
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
1 18 1 a [Ljava/lang/Object;
2 18 2 i I
3 18 3 newCap I
4 18 4 m I
5 18 5 b [Ljava/lang/Object;
6 14 6 j I
9 13 7 pos I
static int mix(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // int x
0: .line 163
iload 0 /* x */
ldc -1640531527
imul
istore 1 /* h */
start local 1 // int h
1: .line 164
iload 1 /* h */
iload 1 /* h */
bipush 16
iushr
ixor
ireturn
end local 1 // int h
end local 0 // int x
LocalVariableTable:
Start End Slot Name Signature
0 2 0 x I
1 2 1 h I
MethodParameters:
Name Flags
x
public java.lang.Object[] keys();
descriptor: ()[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.reactivex.internal.util.OpenHashSet this
0: .line 168
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.keys:[Ljava/lang/Object;
areturn
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.reactivex.internal.util.OpenHashSet this
0: .line 172
aload 0 /* this */
getfield io.reactivex.internal.util.OpenHashSet.size:I
ireturn
end local 0 // io.reactivex.internal.util.OpenHashSet this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/util/OpenHashSet<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "OpenHashSet.java"