g.smali
.class public abstract Lcom/google/common/collect/g;
.super Lcom/google/common/collect/f;
.source "SourceFile"
# interfaces
.implements Ljava/util/Set;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/collect/f<",
"TE;>;",
"Ljava/util/Set<",
"TE;>;"
}
.end annotation
# direct methods
.method constructor <init>()V
.registers 1
.line 332
invoke-direct {p0}, Lcom/google/common/collect/f;-><init>()V
return-void
.end method
.method private static a(I)I
.registers 7
const/4 v0, 0x2
.line 225
invoke-static {p0, v0}, Ljava/lang/Math;->max(II)I
move-result p0
const/4 v0, 0x1
const v1, 0x2ccccccc
if-ge p0, v1, :cond_27
add-int/lit8 v1, p0, -0x1
.line 229
invoke-static {v1}, Ljava/lang/Integer;->highestOneBit(I)I
move-result v1
shl-int/lit8 v0, v1, 0x1
:goto_13
int-to-double v1, v0
const-wide v3, 0x3fe6666666666666L # 0.7
.line 230
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
mul-double v1, v1, v3
int-to-double v3, p0
cmpg-double v5, v1, v3
if-gez v5, :cond_26
shl-int/lit8 v0, v0, 0x1
goto :goto_13
:cond_26
return v0
:cond_27
const/high16 v1, 0x40000000 # 2.0f
if-ge p0, v1, :cond_2c
goto :goto_2d
:cond_2c
const/4 v0, 0x0
:goto_2d
const-string p0, "collection too large"
.line 237
invoke-static {v0, p0}, Lcom/google/common/base/f;->a(ZLjava/lang/Object;)V
return v1
.end method
.method public static a(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/g;
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">(TE;TE;TE;)",
"Lcom/google/common/collect/g<",
"TE;>;"
}
.end annotation
const/4 v0, 0x3
new-array v1, v0, [Ljava/lang/Object;
const/4 v2, 0x0
aput-object p0, v1, v2
const/4 p0, 0x1
aput-object p1, v1, p0
const/4 p1, 0x2
aput-object p2, v1, p1
const/4 p1, 0x3
:goto_d
if-eqz p1, :cond_7f
if-eq p1, p0, :cond_77
.line 2170
invoke-static {p1}, Lcom/google/common/collect/g;->a(I)I
move-result p2
.line 2171
new-array v3, p2, [Ljava/lang/Object;
add-int/lit8 v4, p2, -0x1
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
:goto_1c
if-ge v5, p1, :cond_55
.line 2176
aget-object v8, v1, v5
if-eqz v8, :cond_45
.line 2177
invoke-virtual {v8}, Ljava/lang/Object;->hashCode()I
move-result v9
.line 2178
invoke-static {v9}, Lcom/google/common/collect/e;->a(I)I
move-result v10
:goto_2a
and-int v11, v10, v4
.line 2180
aget-object v12, v3, v11
if-nez v12, :cond_39
add-int/lit8 v10, v6, 0x1
.line 2183
aput-object v8, v1, v6
.line 2184
aput-object v8, v3, v11
add-int/2addr v7, v9
move v6, v10
goto :goto_42
.line 2187
:cond_39
invoke-virtual {v12, v8}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v11
if-nez v11, :cond_42
add-int/lit8 v10, v10, 0x1
goto :goto_2a
:cond_42
:goto_42
add-int/lit8 v5, v5, 0x1
goto :goto_1c
.line 3235
:cond_45
new-instance p0, Ljava/lang/NullPointerException;
invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p1
const-string p2, "at index "
invoke-virtual {p2, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p0
:cond_55
const/4 v5, 0x0
.line 2192
invoke-static {v1, v6, p1, v5}, Ljava/util/Arrays;->fill([Ljava/lang/Object;IILjava/lang/Object;)V
if-ne v6, p0, :cond_63
.line 2196
aget-object p0, v1, v2
.line 2197
new-instance p1, Lcom/google/common/collect/p;
invoke-direct {p1, p0, v7}, Lcom/google/common/collect/p;-><init>(Ljava/lang/Object;I)V
return-object p1
.line 2198
:cond_63
invoke-static {v6}, Lcom/google/common/collect/g;->a(I)I
move-result p1
if-eq p2, p1, :cond_6b
move p1, v6
goto :goto_d
:cond_6b
if-ge v6, v0, :cond_71
.line 2204
invoke-static {v1, v6}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
move-result-object v1
.line 2205
:cond_71
new-instance p0, Lcom/google/common/collect/n;
invoke-direct {p0, v1, v7, v3, v4}, Lcom/google/common/collect/n;-><init>([Ljava/lang/Object;I[Ljava/lang/Object;I)V
return-object p0
.line 2165
:cond_77
aget-object p0, v1, v2
.line 3084
new-instance p1, Lcom/google/common/collect/p;
invoke-direct {p1, p0}, Lcom/google/common/collect/p;-><init>(Ljava/lang/Object;)V
return-object p1
.line 3075
:cond_7f
sget-object p0, Lcom/google/common/collect/n;->a:Lcom/google/common/collect/n;
return-object p0
.end method
# virtual methods
.method public abstract a()Lcom/google/common/collect/q;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/collect/q<",
"TE;>;"
}
.end annotation
.end method
.method b()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 4
if-ne p1, p0, :cond_4
const/4 p1, 0x1
return p1
.line 343
:cond_4
instance-of v0, p1, Lcom/google/common/collect/g;
if-eqz v0, :cond_23
.line 344
invoke-virtual {p0}, Lcom/google/common/collect/g;->b()Z
move-result v0
if-eqz v0, :cond_23
move-object v0, p1
check-cast v0, Lcom/google/common/collect/g;
.line 345
invoke-virtual {v0}, Lcom/google/common/collect/g;->b()Z
move-result v0
if-eqz v0, :cond_23
.line 346
invoke-virtual {p0}, Lcom/google/common/collect/g;->hashCode()I
move-result v0
invoke-virtual {p1}, Ljava/lang/Object;->hashCode()I
move-result v1
if-eq v0, v1, :cond_23
const/4 p1, 0x0
return p1
.line 349
:cond_23
invoke-static {p0, p1}, Lcom/google/common/collect/o;->a(Ljava/util/Set;Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public hashCode()I
.registers 5
.line 3768
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
const/4 v1, 0x0
const/4 v2, 0x0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_1e
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
if-eqz v3, :cond_17
.line 3769
invoke-virtual {v3}, Ljava/lang/Object;->hashCode()I
move-result v3
goto :goto_18
:cond_17
const/4 v3, 0x0
:goto_18
add-int/2addr v2, v3
xor-int/lit8 v2, v2, -0x1
xor-int/lit8 v2, v2, -0x1
goto :goto_6
:cond_1e
return v2
.end method
.method public synthetic iterator()Ljava/util/Iterator;
.registers 2
.line 50
invoke-virtual {p0}, Lcom/google/common/collect/g;->a()Lcom/google/common/collect/q;
move-result-object v0
return-object v0
.end method