final class com.google.common.collect.ImmutableSet$RegularSetBuilderImpl<E> extends com.google.common.collect.ImmutableSet$SetBuilderImpl<E>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.collect.ImmutableSet$RegularSetBuilderImpl
super_class: com.google.common.collect.ImmutableSet$SetBuilderImpl
{
private java.lang.Object[] hashTable;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private int maxRunBeforeFallback;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int expandTableThreshold;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int hashCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokespecial com.google.common.collect.ImmutableSet$SetBuilderImpl.<init>:(I)V
1: iload 1
invokestatic com.google.common.collect.ImmutableSet.chooseTableSize:(I)I
istore 2
start local 2 2: aload 0
iload 2
anewarray java.lang.Object
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
3: aload 0
iload 2
invokestatic com.google.common.collect.ImmutableSet.maxRunBeforeFallback:(I)I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
4: aload 0
ldc 0.7
iload 2
i2d
dmul
d2i
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
0 6 1 expectedCapacity I
2 6 2 tableSize I
MethodParameters:
Name Flags
expectedCapacity
void <init>(com.google.common.collect.ImmutableSet$RegularSetBuilderImpl<E>);
descriptor: (Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.google.common.collect.ImmutableSet$SetBuilderImpl.<init>:(Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;)V
1: aload 0
aload 1
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
aload 1
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
2: aload 0
aload 1
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
3: aload 0
aload 1
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
4: aload 0
aload 1
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashCode:I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashCode:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
0 6 1 toCopy Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
Signature: (Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;)V
MethodParameters:
Name Flags
toCopy
void ensureTableCapacity(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
if_icmple 5
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
ldc 1073741824
if_icmpge 5
1: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
iconst_2
imul
istore 2
start local 2 2: aload 0
iload 2
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
invokestatic com.google.common.collect.ImmutableSet.rebuildHashTable:(I[Ljava/lang/Object;I)[Ljava/lang/Object;
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
3: aload 0
iload 2
invokestatic com.google.common.collect.ImmutableSet.maxRunBeforeFallback:(I)I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
4: aload 0
ldc 0.7
iload 2
i2d
dmul
d2i
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
0 6 1 minCapacity I
2 5 2 newTableSize I
MethodParameters:
Name Flags
minCapacity
com.google.common.collect.ImmutableSet$SetBuilderImpl<E> add(E);
descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;
flags: (0x0000)
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokevirtual java.lang.Object.hashCode:()I
istore 2
start local 2 2: iload 2
invokestatic com.google.common.collect.Hashing.smear:(I)I
istore 3
start local 3 3: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
iconst_1
isub
istore 4
start local 4 4: iload 3
istore 5
start local 5 5: goto 17
6: StackMap locals: com.google.common.collect.ImmutableSet$RegularSetBuilderImpl java.lang.Object int int int int
StackMap stack:
iload 5
iload 4
iand
istore 6
start local 6 7: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
iload 6
aaload
astore 7
start local 7 8: aload 7
ifnonnull 14
9: aload 0
aload 1
invokevirtual com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.addDedupedElement:(Ljava/lang/Object;)V
10: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
iload 6
aload 1
aastore
11: aload 0
dup
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashCode:I
iload 2
iadd
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashCode:I
12: aload 0
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
invokevirtual com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.ensureTableCapacity:(I)V
13: aload 0
areturn
14: StackMap locals: int java.lang.Object
StackMap stack:
aload 7
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 16
15: aload 0
areturn
end local 7 end local 6 16: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 3
isub
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
if_icmplt 6
end local 5 18: new com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl
dup
aload 0
invokespecial com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl.<init>:(Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;)V
aload 1
invokevirtual com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl.add:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
0 19 1 e TE;
2 19 2 eHash I
3 19 3 i0 I
4 19 4 mask I
5 18 5 i I
7 16 6 index I
8 16 7 tableEntry Ljava/lang/Object;
Signature: (TE;)Lcom/google/common/collect/ImmutableSet$SetBuilderImpl<TE;>;
MethodParameters:
Name Flags
e
com.google.common.collect.ImmutableSet$SetBuilderImpl<E> copy();
descriptor: ()Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.ImmutableSet$RegularSetBuilderImpl
dup
aload 0
invokespecial com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.<init>:(Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
Signature: ()Lcom/google/common/collect/ImmutableSet$SetBuilderImpl<TE;>;
com.google.common.collect.ImmutableSet$SetBuilderImpl<E> review();
descriptor: ()Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
invokestatic com.google.common.collect.ImmutableSet.chooseTableSize:(I)I
istore 1
start local 1 1: iload 1
iconst_2
imul
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
if_icmpge 5
2: aload 0
iload 1
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
invokestatic com.google.common.collect.ImmutableSet.rebuildHashTable:(I[Ljava/lang/Object;I)[Ljava/lang/Object;
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
3: aload 0
iload 1
invokestatic com.google.common.collect.ImmutableSet.maxRunBeforeFallback:(I)I
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.maxRunBeforeFallback:I
4: aload 0
ldc 0.7
iload 1
i2d
dmul
d2i
putfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.expandTableThreshold:I
5: StackMap locals: int
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
invokestatic com.google.common.collect.ImmutableSet.hashFloodingDetected:([Ljava/lang/Object;)Z
ifeq 6
new com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl
dup
aload 0
invokespecial com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl.<init>:(Lcom/google/common/collect/ImmutableSet$SetBuilderImpl;)V
goto 7
StackMap locals:
StackMap stack:
6: aload 0
StackMap locals:
StackMap stack: com.google.common.collect.ImmutableSet$SetBuilderImpl
7: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
1 8 1 targetTableSize I
Signature: ()Lcom/google/common/collect/ImmutableSet$SetBuilderImpl<TE;>;
com.google.common.collect.ImmutableSet<E> build();
descriptor: ()Lcom/google/common/collect/ImmutableSet;
flags: (0x0000)
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
tableswitch { // 0 - 1
0: 1
1: 2
default: 3
}
1: StackMap locals:
StackMap stack:
invokestatic com.google.common.collect.ImmutableSet.of:()Lcom/google/common/collect/ImmutableSet;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
iconst_0
aaload
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
arraylength
if_icmpne 5
4: aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
goto 6
5: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.dedupedElements:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.distinct:I
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
6: StackMap locals:
StackMap stack: java.lang.Object[]
astore 1
start local 1 7: new com.google.common.collect.RegularImmutableSet
dup
aload 1
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashCode:I
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableSet$RegularSetBuilderImpl.hashTable:[Ljava/lang/Object;
arraylength
iconst_1
isub
invokespecial com.google.common.collect.RegularImmutableSet.<init>:([Ljava/lang/Object;I[Ljava/lang/Object;I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/collect/ImmutableSet$RegularSetBuilderImpl<TE;>;
7 8 1 elements [Ljava/lang/Object;
Signature: ()Lcom/google/common/collect/ImmutableSet<TE;>;
}
Signature: <E:Ljava/lang/Object;>Lcom/google/common/collect/ImmutableSet$SetBuilderImpl<TE;>;
SourceFile: "ImmutableSet.java"
NestHost: com.google.common.collect.ImmutableSet
InnerClasses:
private final JdkBackedSetBuilderImpl = com.google.common.collect.ImmutableSet$JdkBackedSetBuilderImpl of com.google.common.collect.ImmutableSet
private final RegularSetBuilderImpl = com.google.common.collect.ImmutableSet$RegularSetBuilderImpl of com.google.common.collect.ImmutableSet
private abstract SetBuilderImpl = com.google.common.collect.ImmutableSet$SetBuilderImpl of com.google.common.collect.ImmutableSet