MapMakerInternalMap.smali
.class Lcom/google/common/collect/MapMakerInternalMap;
.super Ljava/util/AbstractMap;
.source "MapMakerInternalMap.java"
# interfaces
.implements Ljava/io/Serializable;
.implements Ljava/util/concurrent/ConcurrentMap;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Ljava/util/AbstractMap",
"<TK;TV;>;",
"Ljava/io/Serializable;",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;"
}
.end annotation
# static fields
.field static final CLEANUP_EXECUTOR_DELAY_SECS:J = 0x3cL
.field static final CONTAINS_VALUE_RETRIES:I = 0x3
.field static final DISCARDING_QUEUE:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<+",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field static final DRAIN_MAX:I = 0x10
.field static final DRAIN_THRESHOLD:I = 0x3f
.field static final MAXIMUM_CAPACITY:I = 0x40000000
.field static final MAX_SEGMENTS:I = 0x10000
.field static final UNSET:Lcom/google/common/collect/bt;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/bt",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private static final logger:Ljava/util/logging/Logger;
.field private static final serialVersionUID:J = 0x5L
# instance fields
.field final concurrencyLevel:I
.field final transient entryFactory:Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;
.field transient entrySet:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;"
}
.end annotation
.end field
.field final expireAfterAccessNanos:J
.field final expireAfterWriteNanos:J
.field final keyEquivalence:Lcom/google/common/base/Equivalence;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/base/Equivalence",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field transient keySet:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<TK;>;"
}
.end annotation
.end field
.field final keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.field final maximumSize:I
.field final removalListener:Lcom/google/common/collect/bc;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/bc",
"<TK;TV;>;"
}
.end annotation
.end field
.field final removalNotificationQueue:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<",
"Lcom/google/common/collect/MapMaker$RemovalNotification",
"<TK;TV;>;>;"
}
.end annotation
.end field
.field final transient segmentMask:I
.field final transient segmentShift:I
.field final transient segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Lcom/google/common/collect/MapMakerInternalMap$Segment",
"<TK;TV;>;"
}
.end annotation
.end field
.field final ticker:Lcom/google/common/base/w;
.field final valueEquivalence:Lcom/google/common/base/Equivalence;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/base/Equivalence",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field final valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.field transient values:Ljava/util/Collection;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Collection",
"<TV;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 135
const-class v0, Lcom/google/common/collect/MapMakerInternalMap;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
move-result-object v0
sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->logger:Ljava/util/logging/Logger;
.line 578
new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$1;
invoke-direct {v0}, Lcom/google/common/collect/MapMakerInternalMap$1;-><init>()V
sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->UNSET:Lcom/google/common/collect/bt;
.line 868
new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$2;
invoke-direct {v0}, Lcom/google/common/collect/MapMakerInternalMap$2;-><init>()V
sput-object v0, Lcom/google/common/collect/MapMakerInternalMap;->DISCARDING_QUEUE:Ljava/util/Queue;
return-void
.end method
.method constructor <init>(Lcom/google/common/collect/MapMaker;)V
.registers 10
.prologue
const-wide/16 v2, 0x0
const-wide/16 v6, -0x1
const/4 v4, 0x1
const/4 v5, 0x0
.line 195
invoke-direct {p0}, Ljava/util/AbstractMap;-><init>()V
.line 196
invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->xv()I
move-result v0
const/high16 v1, 0x10000
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
iput v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I
.line 198
invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->xw()Lcom/google/common/collect/MapMakerInternalMap$Strength;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.line 4349
iget-object v0, p1, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-static {v0, v1}, Lcom/google/common/base/j;->d(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/MapMakerInternalMap$Strength;
.line 199
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.line 5155
iget-object v0, p1, Lcom/google/common/collect/MapMaker;->keyEquivalence:Lcom/google/common/base/Equivalence;
invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->xw()Lcom/google/common/collect/MapMakerInternalMap$Strength;
move-result-object v1
invoke-virtual {v1}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->defaultEquivalence()Lcom/google/common/base/Equivalence;
move-result-object v1
invoke-static {v0, v1}, Lcom/google/common/base/j;->d(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/base/Equivalence;
.line 201
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence;
.line 202
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-virtual {v0}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->defaultEquivalence()Lcom/google/common/base/Equivalence;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence;
.line 204
iget v0, p1, Lcom/google/common/collect/MapMaker;->maximumSize:I
iput v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
.line 5442
iget-wide v0, p1, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
cmp-long v0, v0, v6
if-nez v0, :cond_b2
move-wide v0, v2
.line 205
:goto_4c
iput-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J
.line 6399
iget-wide v0, p1, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
cmp-long v0, v0, v6
if-nez v0, :cond_b5
.line 206
:goto_54
iput-wide v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J
.line 208
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expires()Z
move-result v1
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z
move-result v2
invoke-static {v0, v1, v2}, Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;->getFactory(Lcom/google/common/collect/MapMakerInternalMap$Strength;ZZ)Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entryFactory:Lcom/google/common/collect/MapMakerInternalMap$EntryFactory;
.line 6447
const/4 v0, 0x0
invoke-static {}, Lcom/google/common/base/w;->wX()Lcom/google/common/base/w;
move-result-object v1
invoke-static {v0, v1}, Lcom/google/common/base/j;->d(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/base/w;
.line 209
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->ticker:Lcom/google/common/base/w;
.line 211
invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->xk()Lcom/google/common/collect/bc;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/bc;
.line 212
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/bc;
sget-object v1, Lcom/google/common/collect/GenericMapMaker$NullListener;->INSTANCE:Lcom/google/common/collect/GenericMapMaker$NullListener;
if-ne v0, v1, :cond_b8
invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->discardingQueue()Ljava/util/Queue;
move-result-object v0
:goto_83
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalNotificationQueue:Ljava/util/Queue;
.line 216
invoke-virtual {p1}, Lcom/google/common/collect/MapMaker;->xu()I
move-result v0
const/high16 v1, 0x40000000 # 2.0f
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
.line 217
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z
move-result v1
if-eqz v1, :cond_9b
.line 218
iget v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
:cond_9b
move v1, v4
move v2, v5
.line 227
:goto_9d
iget v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I
if-ge v1, v3, :cond_be
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z
move-result v3
if-eqz v3, :cond_ad
shl-int/lit8 v3, v1, 0x1
iget v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
if-gt v3, v6, :cond_be
.line 228
:cond_ad
add-int/lit8 v2, v2, 0x1
.line 229
shl-int/lit8 v1, v1, 0x1
goto :goto_9d
.line 5442
:cond_b2
iget-wide v0, p1, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
goto :goto_4c
.line 6399
:cond_b5
iget-wide v2, p1, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
goto :goto_54
.line 212
:cond_b8
new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
goto :goto_83
.line 231
:cond_be
rsub-int/lit8 v2, v2, 0x20
iput v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentShift:I
.line 232
add-int/lit8 v2, v1, -0x1
iput v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentMask:I
.line 234
invoke-virtual {p0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->newSegmentArray(I)[Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v2
iput-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
.line 236
div-int v2, v0, v1
.line 237
mul-int v3, v2, v1
if-ge v3, v0, :cond_10e
.line 238
add-int/lit8 v0, v2, 0x1
.line 242
:goto_d4
if-ge v4, v0, :cond_d9
.line 243
shl-int/lit8 v4, v4, 0x1
goto :goto_d4
.line 246
:cond_d9
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->evictsBySize()Z
move-result v0
if-eqz v0, :cond_fc
.line 248
iget v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
div-int/2addr v0, v1
add-int/lit8 v0, v0, 0x1
.line 249
iget v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
rem-int v1, v2, v1
.line 250
:goto_e8
iget-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
array-length v2, v2
if-ge v5, v2, :cond_10d
.line 251
if-ne v5, v1, :cond_f1
.line 252
add-int/lit8 v0, v0, -0x1
.line 254
:cond_f1
iget-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
invoke-virtual {p0, v4, v0}, Lcom/google/common/collect/MapMakerInternalMap;->createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v3
aput-object v3, v2, v5
.line 250
add-int/lit8 v5, v5, 0x1
goto :goto_e8
.line 258
:cond_fc
:goto_fc
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
array-length v0, v0
if-ge v5, v0, :cond_10d
.line 259
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
const/4 v1, -0x1
invoke-virtual {p0, v4, v1}, Lcom/google/common/collect/MapMakerInternalMap;->createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
aput-object v1, v0, v5
.line 258
add-int/lit8 v5, v5, 0x1
goto :goto_fc
.line 263
:cond_10d
return-void
:cond_10e
move v0, v2
goto :goto_d4
.end method
.method static connectEvictables(Lcom/google/common/collect/bl;Lcom/google/common/collect/bl;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1961
invoke-interface {p0, p1}, Lcom/google/common/collect/bl;->setNextEvictable(Lcom/google/common/collect/bl;)V
.line 1962
invoke-interface {p1, p0}, Lcom/google/common/collect/bl;->setPreviousEvictable(Lcom/google/common/collect/bl;)V
.line 1963
return-void
.end method
.method static connectExpirables(Lcom/google/common/collect/bl;Lcom/google/common/collect/bl;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1929
invoke-interface {p0, p1}, Lcom/google/common/collect/bl;->setNextExpirable(Lcom/google/common/collect/bl;)V
.line 1930
invoke-interface {p1, p0}, Lcom/google/common/collect/bl;->setPreviousExpirable(Lcom/google/common/collect/bl;)V
.line 1931
return-void
.end method
.method static discardingQueue()Ljava/util/Queue;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">()",
"Ljava/util/Queue",
"<TE;>;"
}
.end annotation
.prologue
.line 900
sget-object v0, Lcom/google/common/collect/MapMakerInternalMap;->DISCARDING_QUEUE:Ljava/util/Queue;
return-object v0
.end method
.method static nullEntry()Lcom/google/common/collect/bl;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">()",
"Lcom/google/common/collect/bl",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 865
sget-object v0, Lcom/google/common/collect/MapMakerInternalMap$NullEntry;->INSTANCE:Lcom/google/common/collect/MapMakerInternalMap$NullEntry;
return-object v0
.end method
.method static nullifyEvictable(Lcom/google/common/collect/bl;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1967
invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->nullEntry()Lcom/google/common/collect/bl;
move-result-object v0
.line 1968
invoke-interface {p0, v0}, Lcom/google/common/collect/bl;->setNextEvictable(Lcom/google/common/collect/bl;)V
.line 1969
invoke-interface {p0, v0}, Lcom/google/common/collect/bl;->setPreviousEvictable(Lcom/google/common/collect/bl;)V
.line 1970
return-void
.end method
.method static nullifyExpirable(Lcom/google/common/collect/bl;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1935
invoke-static {}, Lcom/google/common/collect/MapMakerInternalMap;->nullEntry()Lcom/google/common/collect/bl;
move-result-object v0
.line 1936
invoke-interface {p0, v0}, Lcom/google/common/collect/bl;->setNextExpirable(Lcom/google/common/collect/bl;)V
.line 1937
invoke-interface {p0, v0}, Lcom/google/common/collect/bl;->setPreviousExpirable(Lcom/google/common/collect/bl;)V
.line 1938
return-void
.end method
.method static rehash(I)I
.registers 4
.prologue
.line 1813
shl-int/lit8 v0, p0, 0xf
xor-int/lit16 v0, v0, -0x3283
add-int/2addr v0, p0
.line 1814
ushr-int/lit8 v1, v0, 0xa
xor-int/2addr v0, v1
.line 1815
shl-int/lit8 v1, v0, 0x3
add-int/2addr v0, v1
.line 1816
ushr-int/lit8 v1, v0, 0x6
xor-int/2addr v0, v1
.line 1817
shl-int/lit8 v1, v0, 0x2
shl-int/lit8 v2, v0, 0xe
add-int/2addr v1, v2
add-int/2addr v0, v1
.line 1818
ushr-int/lit8 v1, v0, 0x10
xor-int/2addr v0, v1
return v0
.end method
.method static unset()Lcom/google/common/collect/bt;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">()",
"Lcom/google/common/collect/bt",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 614
sget-object v0, Lcom/google/common/collect/MapMakerInternalMap;->UNSET:Lcom/google/common/collect/bt;
return-object v0
.end method
# virtual methods
.method public clear()V
.registers 5
.prologue
.line 3559
iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
array-length v2, v1
const/4 v0, 0x0
:goto_4
if-ge v0, v2, :cond_e
aget-object v3, v1, v0
.line 3560
invoke-virtual {v3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->clear()V
.line 3559
add-int/lit8 v0, v0, 0x1
goto :goto_4
.line 3562
:cond_e
return-void
.end method
.method public containsKey(Ljava/lang/Object;)Z
.registers 4
.prologue
.line 3451
if-nez p1, :cond_4
.line 3452
const/4 v0, 0x0
.line 3455
:goto_3
return v0
.line 3454
:cond_4
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3455
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->containsKey(Ljava/lang/Object;I)Z
move-result v0
goto :goto_3
.end method
.method public containsValue(Ljava/lang/Object;)Z
.registers 16
.prologue
.line 3460
if-nez p1, :cond_4
.line 3461
const/4 v0, 0x0
.line 3494
:goto_3
return v0
.line 3469
:cond_4
iget-object v7, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
.line 3470
const-wide/16 v4, -0x1
.line 3471
const/4 v0, 0x0
move v6, v0
move-wide v8, v4
:goto_b
const/4 v0, 0x3
if-ge v6, v0, :cond_56
.line 3472
const-wide/16 v2, 0x0
.line 3473
array-length v10, v7
const/4 v0, 0x0
move-wide v4, v2
move v2, v0
:goto_14
if-ge v2, v10, :cond_4d
aget-object v3, v7, v2
.line 3476
iget v0, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I
.line 3478
iget-object v11, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
.line 3479
const/4 v0, 0x0
move v1, v0
:goto_1e
invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->length()I
move-result v0
if-ge v1, v0, :cond_45
.line 3480
invoke-virtual {v11, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/bl;
:goto_2a
if-eqz v0, :cond_41
.line 3481
invoke-virtual {v3, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getLiveValue(Lcom/google/common/collect/bl;)Ljava/lang/Object;
move-result-object v12
.line 3482
if-eqz v12, :cond_3c
iget-object v13, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence;
invoke-virtual {v13, p1, v12}, Lcom/google/common/base/Equivalence;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v12
if-eqz v12, :cond_3c
.line 3483
const/4 v0, 0x1
goto :goto_3
.line 3480
:cond_3c
invoke-interface {v0}, Lcom/google/common/collect/bl;->getNext()Lcom/google/common/collect/bl;
move-result-object v0
goto :goto_2a
.line 3479
:cond_41
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_1e
.line 3487
:cond_45
iget v0, v3, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I
int-to-long v0, v0
add-long/2addr v4, v0
.line 3473
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_14
.line 3489
:cond_4d
cmp-long v0, v4, v8
if-eqz v0, :cond_56
.line 3471
add-int/lit8 v0, v6, 0x1
move v6, v0
move-wide v8, v4
goto :goto_b
.line 3494
:cond_56
const/4 v0, 0x0
goto :goto_3
.end method
.method copyEntry(Lcom/google/common/collect/bl;Lcom/google/common/collect/bl;)Lcom/google/common/collect/bl;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)",
"Lcom/google/common/collect/bl",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1836
invoke-interface {p1}, Lcom/google/common/collect/bl;->getHash()I
move-result v0
.line 1837
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v0
invoke-virtual {v0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->copyEntry(Lcom/google/common/collect/bl;Lcom/google/common/collect/bl;)Lcom/google/common/collect/bl;
move-result-object v0
return-object v0
.end method
.method createSegment(II)Lcom/google/common/collect/MapMakerInternalMap$Segment;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(II)",
"Lcom/google/common/collect/MapMakerInternalMap$Segment",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1887
new-instance v0, Lcom/google/common/collect/MapMakerInternalMap$Segment;
invoke-direct {v0, p0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;-><init>(Lcom/google/common/collect/MapMakerInternalMap;II)V
return-object v0
.end method
.method public entrySet()Ljava/util/Set;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;"
}
.end annotation
.prologue
.line 3584
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entrySet:Ljava/util/Set;
.line 3585
if-eqz v0, :cond_5
:goto_4
return-object v0
:cond_5
new-instance v0, Lcom/google/common/collect/bf;
invoke-direct {v0, p0}, Lcom/google/common/collect/bf;-><init>(Lcom/google/common/collect/MapMakerInternalMap;)V
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->entrySet:Ljava/util/Set;
goto :goto_4
.end method
.method evictsBySize()Z
.registers 3
.prologue
.line 266
iget v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
const/4 v1, -0x1
if-eq v0, v1, :cond_7
const/4 v0, 0x1
:goto_6
return v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method expires()Z
.registers 2
.prologue
.line 270
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expiresAfterWrite()Z
move-result v0
if-nez v0, :cond_c
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expiresAfterAccess()Z
move-result v0
if-eqz v0, :cond_e
:cond_c
const/4 v0, 0x1
:goto_d
return v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method
.method expiresAfterAccess()Z
.registers 5
.prologue
.line 278
iget-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method expiresAfterWrite()Z
.registers 5
.prologue
.line 274
iget-wide v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public get(Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")TV;"
}
.end annotation
.prologue
.line 3430
if-nez p1, :cond_4
.line 3431
const/4 v0, 0x0
.line 3434
:goto_3
return-object v0
.line 3433
:cond_4
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3434
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->get(Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object v0
goto :goto_3
.end method
.method getEntry(Ljava/lang/Object;)Lcom/google/common/collect/bl;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")",
"Lcom/google/common/collect/bl",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 3442
if-nez p1, :cond_4
.line 3443
const/4 v0, 0x0
.line 3446
:goto_3
return-object v0
.line 3445
:cond_4
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3446
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getEntry(Ljava/lang/Object;I)Lcom/google/common/collect/bl;
move-result-object v0
goto :goto_3
.end method
.method getLiveValue(Lcom/google/common/collect/bl;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)TV;"
}
.end annotation
.prologue
const/4 v0, 0x0
.line 1896
invoke-interface {p1}, Lcom/google/common/collect/bl;->getKey()Ljava/lang/Object;
move-result-object v1
if-nez v1, :cond_8
.line 1907
:cond_7
:goto_7
return-object v0
.line 1899
:cond_8
invoke-interface {p1}, Lcom/google/common/collect/bl;->getValueReference()Lcom/google/common/collect/bt;
move-result-object v1
invoke-interface {v1}, Lcom/google/common/collect/bt;->get()Ljava/lang/Object;
move-result-object v1
.line 1900
if-eqz v1, :cond_7
.line 1904
invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap;->expires()Z
move-result v2
if-eqz v2, :cond_1e
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->isExpired(Lcom/google/common/collect/bl;)Z
move-result v2
if-nez v2, :cond_7
:cond_1e
move-object v0, v1
.line 1907
goto :goto_7
.end method
.method hash(Ljava/lang/Object;)I
.registers 3
.prologue
.line 1851
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence;
invoke-virtual {v0, p1}, Lcom/google/common/base/Equivalence;->hash(Ljava/lang/Object;)I
move-result v0
.line 1852
invoke-static {v0}, Lcom/google/common/collect/MapMakerInternalMap;->rehash(I)I
move-result v0
return v0
.end method
.method public isEmpty()Z
.registers 11
.prologue
const-wide/16 v4, 0x0
const/4 v1, 0x0
.line 3395
.line 3396
iget-object v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
move v0, v1
move-wide v2, v4
.line 3397
:goto_7
array-length v7, v6
if-ge v0, v7, :cond_1a
.line 3398
aget-object v7, v6, v0
iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I
if-eqz v7, :cond_11
.line 3415
:cond_10
:goto_10
return v1
.line 3401
:cond_11
aget-object v7, v6, v0
iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I
int-to-long v8, v7
add-long/2addr v2, v8
.line 3397
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 3404
:cond_1a
cmp-long v0, v2, v4
if-eqz v0, :cond_35
move v0, v1
.line 3405
:goto_1f
array-length v7, v6
if-ge v0, v7, :cond_31
.line 3406
aget-object v7, v6, v0
iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I
if-nez v7, :cond_10
.line 3409
aget-object v7, v6, v0
iget v7, v7, Lcom/google/common/collect/MapMakerInternalMap$Segment;->modCount:I
int-to-long v8, v7
sub-long/2addr v2, v8
.line 3405
add-int/lit8 v0, v0, 0x1
goto :goto_1f
.line 3411
:cond_31
cmp-long v0, v2, v4
if-nez v0, :cond_10
.line 3415
:cond_35
const/4 v1, 0x1
goto :goto_10
.end method
.method isExpired(Lcom/google/common/collect/bl;)Z
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)Z"
}
.end annotation
.prologue
.line 1916
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->ticker:Lcom/google/common/base/w;
invoke-virtual {v0}, Lcom/google/common/base/w;->wW()J
move-result-wide v0
invoke-virtual {p0, p1, v0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->isExpired(Lcom/google/common/collect/bl;J)Z
move-result v0
return v0
.end method
.method isExpired(Lcom/google/common/collect/bl;J)Z
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;J)Z"
}
.end annotation
.prologue
.line 1924
invoke-interface {p1}, Lcom/google/common/collect/bl;->getExpirationTime()J
move-result-wide v0
sub-long v0, p2, v0
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_e
const/4 v0, 0x1
:goto_d
return v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method
.method isLive(Lcom/google/common/collect/bl;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)Z"
}
.end annotation
.prologue
.line 1872
invoke-interface {p1}, Lcom/google/common/collect/bl;->getHash()I
move-result v0
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->getLiveValue(Lcom/google/common/collect/bl;)Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_10
const/4 v0, 0x1
:goto_f
return v0
:cond_10
const/4 v0, 0x0
goto :goto_f
.end method
.method public keySet()Ljava/util/Set;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set",
"<TK;>;"
}
.end annotation
.prologue
.line 3568
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keySet:Ljava/util/Set;
.line 3569
if-eqz v0, :cond_5
:goto_4
return-object v0
:cond_5
new-instance v0, Lcom/google/common/collect/bk;
invoke-direct {v0, p0}, Lcom/google/common/collect/bk;-><init>(Lcom/google/common/collect/MapMakerInternalMap;)V
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keySet:Ljava/util/Set;
goto :goto_4
.end method
.method newEntry(Ljava/lang/Object;ILcom/google/common/collect/bl;)Lcom/google/common/collect/bl;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;I",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)",
"Lcom/google/common/collect/bl",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1827
invoke-virtual {p0, p2}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v0
invoke-virtual {v0, p1, p2, p3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->newEntry(Ljava/lang/Object;ILcom/google/common/collect/bl;)Lcom/google/common/collect/bl;
move-result-object v0
return-object v0
.end method
.method final newSegmentArray(I)[Lcom/google/common/collect/MapMakerInternalMap$Segment;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)[",
"Lcom/google/common/collect/MapMakerInternalMap$Segment",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1974
new-array v0, p1, [Lcom/google/common/collect/MapMakerInternalMap$Segment;
return-object v0
.end method
.method newValueReference(Lcom/google/common/collect/bl;Ljava/lang/Object;)Lcom/google/common/collect/bt;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;TV;)",
"Lcom/google/common/collect/bt",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1846
invoke-interface {p1}, Lcom/google/common/collect/bl;->getHash()I
move-result v0
.line 1847
iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v0
invoke-virtual {v1, v0, p1, p2}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->referenceValue(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/bl;Ljava/lang/Object;)Lcom/google/common/collect/bt;
move-result-object v0
return-object v0
.end method
.method processPendingNotifications()V
.registers 5
.prologue
.line 1949
:goto_0
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalNotificationQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/MapMaker$RemovalNotification;
if-eqz v0, :cond_1b
.line 1951
:try_start_a
iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/bc;
invoke-interface {v1, v0}, Lcom/google/common/collect/bc;->onRemoval(Lcom/google/common/collect/MapMaker$RemovalNotification;)V
:try_end_f
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_f} :catch_10
goto :goto_0
.line 1952
:catch_10
move-exception v0
.line 1953
sget-object v1, Lcom/google/common/collect/MapMakerInternalMap;->logger:Ljava/util/logging/Logger;
sget-object v2, Ljava/util/logging/Level;->WARNING:Ljava/util/logging/Level;
const-string v3, "Exception thrown by removal listener"
invoke-virtual {v1, v2, v3, v0}, Ljava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_0
.line 1956
:cond_1b
return-void
.end method
.method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)TV;"
}
.end annotation
.prologue
.line 3499
invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3500
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3501
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3502
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
const/4 v2, 0x0
invoke-virtual {v1, p1, v0, p2, v2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public putAll(Ljava/util/Map;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<+TK;+TV;>;)V"
}
.end annotation
.prologue
.line 3515
invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_8
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_20
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 3516
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v2
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-virtual {p0, v2, v0}, Lcom/google/common/collect/MapMakerInternalMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_8
.line 3518
:cond_20
return-void
.end method
.method public putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)TV;"
}
.end annotation
.prologue
.line 3507
invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3508
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3509
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3510
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
const/4 v2, 0x1
invoke-virtual {v1, p1, v0, p2, v2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method reclaimKey(Lcom/google/common/collect/bl;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1862
invoke-interface {p1}, Lcom/google/common/collect/bl;->getHash()I
move-result v0
.line 1863
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->reclaimKey(Lcom/google/common/collect/bl;I)Z
.line 1864
return-void
.end method
.method reclaimValue(Lcom/google/common/collect/bt;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bt",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 1856
invoke-interface {p1}, Lcom/google/common/collect/bt;->xh()Lcom/google/common/collect/bl;
move-result-object v0
.line 1857
invoke-interface {v0}, Lcom/google/common/collect/bl;->getHash()I
move-result v1
.line 1858
invoke-virtual {p0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v2
invoke-interface {v0}, Lcom/google/common/collect/bl;->getKey()Ljava/lang/Object;
move-result-object v0
invoke-virtual {v2, v0, v1, p1}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->reclaimValue(Ljava/lang/Object;ILcom/google/common/collect/bt;)Z
.line 1859
return-void
.end method
.method public remove(Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")TV;"
}
.end annotation
.prologue
.line 3522
if-nez p1, :cond_4
.line 3523
const/4 v0, 0x0
.line 3526
:goto_3
return-object v0
.line 3525
:cond_4
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3526
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->remove(Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object v0
goto :goto_3
.end method
.method public remove(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 5
.prologue
.line 3531
if-eqz p1, :cond_4
if-nez p2, :cond_6
.line 3532
:cond_4
const/4 v0, 0x0
.line 3535
:goto_5
return v0
.line 3534
:cond_6
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3535
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->remove(Ljava/lang/Object;ILjava/lang/Object;)Z
move-result v0
goto :goto_5
.end method
.method public replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)TV;"
}
.end annotation
.prologue
.line 3551
invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3552
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3553
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3554
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0, p2}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->replace(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;TV;)Z"
}
.end annotation
.prologue
.line 3540
invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3541
invoke-static {p3}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3542
if-nez p2, :cond_a
.line 3543
const/4 v0, 0x0
.line 3546
:goto_9
return v0
.line 3545
:cond_a
invoke-virtual {p0, p1}, Lcom/google/common/collect/MapMakerInternalMap;->hash(Ljava/lang/Object;)I
move-result v0
.line 3546
invoke-virtual {p0, v0}, Lcom/google/common/collect/MapMakerInternalMap;->segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
move-result-object v1
invoke-virtual {v1, p1, v0, p2, p3}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->replace(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v0
goto :goto_9
.end method
.method segmentFor(I)Lcom/google/common/collect/MapMakerInternalMap$Segment;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Lcom/google/common/collect/MapMakerInternalMap$Segment",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 1883
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
iget v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentShift:I
ushr-int v1, p1, v1
iget v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->segmentMask:I
and-int/2addr v1, v2
aget-object v0, v0, v1
return-object v0
.end method
.method public size()I
.registers 7
.prologue
.line 3420
iget-object v1, p0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
.line 3421
const-wide/16 v2, 0x0
.line 3422
const/4 v0, 0x0
:goto_5
array-length v4, v1
if-ge v0, v4, :cond_11
.line 3423
aget-object v4, v1, v0
iget v4, v4, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I
int-to-long v4, v4
add-long/2addr v2, v4
.line 3422
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 3425
:cond_11
invoke-static {v2, v3}, Lcom/google/common/primitives/b;->r(J)I
move-result v0
return v0
.end method
.method usesKeyReferences()Z
.registers 3
.prologue
.line 282
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eq v0, v1, :cond_8
const/4 v0, 0x1
:goto_7
return v0
:cond_8
const/4 v0, 0x0
goto :goto_7
.end method
.method usesValueReferences()Z
.registers 3
.prologue
.line 286
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eq v0, v1, :cond_8
const/4 v0, 0x1
:goto_7
return v0
:cond_8
const/4 v0, 0x0
goto :goto_7
.end method
.method public values()Ljava/util/Collection;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Collection",
"<TV;>;"
}
.end annotation
.prologue
.line 3576
iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->values:Ljava/util/Collection;
.line 3577
if-eqz v0, :cond_5
:goto_4
return-object v0
:cond_5
new-instance v0, Lcom/google/common/collect/bu;
invoke-direct {v0, p0}, Lcom/google/common/collect/bu;-><init>(Lcom/google/common/collect/MapMakerInternalMap;)V
iput-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap;->values:Ljava/util/Collection;
goto :goto_4
.end method
.method writeReplace()Ljava/lang/Object;
.registers 15
.prologue
.line 3887
new-instance v1, Lcom/google/common/collect/MapMakerInternalMap$SerializationProxy;
iget-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
iget-object v3, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
iget-object v4, p0, Lcom/google/common/collect/MapMakerInternalMap;->keyEquivalence:Lcom/google/common/base/Equivalence;
iget-object v5, p0, Lcom/google/common/collect/MapMakerInternalMap;->valueEquivalence:Lcom/google/common/base/Equivalence;
iget-wide v6, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterWriteNanos:J
iget-wide v8, p0, Lcom/google/common/collect/MapMakerInternalMap;->expireAfterAccessNanos:J
iget v10, p0, Lcom/google/common/collect/MapMakerInternalMap;->maximumSize:I
iget v11, p0, Lcom/google/common/collect/MapMakerInternalMap;->concurrencyLevel:I
iget-object v12, p0, Lcom/google/common/collect/MapMakerInternalMap;->removalListener:Lcom/google/common/collect/bc;
move-object v13, p0
invoke-direct/range {v1 .. v13}, Lcom/google/common/collect/MapMakerInternalMap$SerializationProxy;-><init>(Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/base/Equivalence;Lcom/google/common/base/Equivalence;JJIILcom/google/common/collect/bc;Ljava/util/concurrent/ConcurrentMap;)V
return-object v1
.end method