bi.smali
.class abstract Lcom/google/common/collect/bi;
.super Ljava/lang/Object;
.source "MapMakerInternalMap.java"
# interfaces
.implements Ljava/util/Iterator;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Ljava/util/Iterator",
"<TE;>;"
}
.end annotation
# instance fields
.field private synthetic aWl:Lcom/google/common/collect/MapMakerInternalMap;
.field private aWt:I
.field private aWu:I
.field private aWv: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 private aWw:Ljava/util/concurrent/atomic/AtomicReferenceArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReferenceArray",
"<",
"Lcom/google/common/collect/bl",
"<TK;TV;>;>;"
}
.end annotation
.end field
.field private aWx:Lcom/google/common/collect/bl;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/bl",
"<TK;TV;>;"
}
.end annotation
.end field
.field private aWy:Lcom/google/common/collect/ca;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/MapMakerInternalMap",
"<TK;TV;>.com/google/common/collect/ca;"
}
.end annotation
.end field
.field private aWz:Lcom/google/common/collect/ca;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/MapMakerInternalMap",
"<TK;TV;>.com/google/common/collect/ca;"
}
.end annotation
.end field
# direct methods
.method constructor <init>(Lcom/google/common/collect/MapMakerInternalMap;)V
.registers 3
.prologue
.line 3600
iput-object p1, p0, Lcom/google/common/collect/bi;->aWl:Lcom/google/common/collect/MapMakerInternalMap;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3601
iget-object v0, p1, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/google/common/collect/bi;->aWt:I
.line 3602
const/4 v0, -0x1
iput v0, p0, Lcom/google/common/collect/bi;->aWu:I
.line 3603
invoke-direct {p0}, Lcom/google/common/collect/bi;->advance()V
.line 3604
return-void
.end method
.method private a(Lcom/google/common/collect/bl;)Z
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/bl",
"<TK;TV;>;)Z"
}
.end annotation
.prologue
.line 3666
:try_start_0
invoke-interface {p1}, Lcom/google/common/collect/bl;->getKey()Ljava/lang/Object;
move-result-object v0
.line 3667
iget-object v1, p0, Lcom/google/common/collect/bi;->aWl:Lcom/google/common/collect/MapMakerInternalMap;
invoke-virtual {v1, p1}, Lcom/google/common/collect/MapMakerInternalMap;->getLiveValue(Lcom/google/common/collect/bl;)Ljava/lang/Object;
move-result-object v1
.line 3668
if-eqz v1, :cond_1c
.line 3669
new-instance v2, Lcom/google/common/collect/ca;
iget-object v3, p0, Lcom/google/common/collect/bi;->aWl:Lcom/google/common/collect/MapMakerInternalMap;
invoke-direct {v2, v3, v0, v1}, Lcom/google/common/collect/ca;-><init>(Lcom/google/common/collect/MapMakerInternalMap;Ljava/lang/Object;Ljava/lang/Object;)V
iput-object v2, p0, Lcom/google/common/collect/bi;->aWy:Lcom/google/common/collect/ca;
:try_end_15
.catchall {:try_start_0 .. :try_end_15} :catchall_23
.line 3676
iget-object v0, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invoke-virtual {v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->postReadCleanup()V
const/4 v0, 0x1
:goto_1b
return v0
:cond_1c
iget-object v0, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invoke-virtual {v0}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->postReadCleanup()V
const/4 v0, 0x0
goto :goto_1b
:catchall_23
move-exception v0
iget-object v1, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invoke-virtual {v1}, Lcom/google/common/collect/MapMakerInternalMap$Segment;->postReadCleanup()V
throw v0
.end method
.method private advance()V
.registers 4
.prologue
.line 3610
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/common/collect/bi;->aWy:Lcom/google/common/collect/ca;
.line 3612
invoke-direct {p0}, Lcom/google/common/collect/bi;->xz()Z
move-result v0
if-eqz v0, :cond_a
.line 3630
:cond_9
:goto_9
return-void
.line 3616
:cond_a
invoke-direct {p0}, Lcom/google/common/collect/bi;->xA()Z
move-result v0
if-nez v0, :cond_9
.line 3620
:cond_10
iget v0, p0, Lcom/google/common/collect/bi;->aWt:I
if-ltz v0, :cond_9
.line 3621
iget-object v0, p0, Lcom/google/common/collect/bi;->aWl:Lcom/google/common/collect/MapMakerInternalMap;
iget-object v0, v0, Lcom/google/common/collect/MapMakerInternalMap;->segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
iget v1, p0, Lcom/google/common/collect/bi;->aWt:I
add-int/lit8 v2, v1, -0x1
iput v2, p0, Lcom/google/common/collect/bi;->aWt:I
aget-object v0, v0, v1
iput-object v0, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
.line 3622
iget-object v0, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
iget v0, v0, Lcom/google/common/collect/MapMakerInternalMap$Segment;->count:I
if-eqz v0, :cond_10
.line 3623
iget-object v0, p0, Lcom/google/common/collect/bi;->aWv:Lcom/google/common/collect/MapMakerInternalMap$Segment;
iget-object v0, v0, Lcom/google/common/collect/MapMakerInternalMap$Segment;->table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iput-object v0, p0, Lcom/google/common/collect/bi;->aWw:Ljava/util/concurrent/atomic/AtomicReferenceArray;
.line 3624
iget-object v0, p0, Lcom/google/common/collect/bi;->aWw:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->length()I
move-result v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/google/common/collect/bi;->aWu:I
.line 3625
invoke-direct {p0}, Lcom/google/common/collect/bi;->xA()Z
move-result v0
if-eqz v0, :cond_10
goto :goto_9
.end method
.method private xA()Z
.registers 4
.prologue
.line 3650
:cond_0
iget v0, p0, Lcom/google/common/collect/bi;->aWu:I
if-ltz v0, :cond_26
.line 3651
iget-object v0, p0, Lcom/google/common/collect/bi;->aWw:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iget v1, p0, Lcom/google/common/collect/bi;->aWu:I
add-int/lit8 v2, v1, -0x1
iput v2, p0, Lcom/google/common/collect/bi;->aWu:I
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/bl;
iput-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
if-eqz v0, :cond_0
.line 3652
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
invoke-direct {p0, v0}, Lcom/google/common/collect/bi;->a(Lcom/google/common/collect/bl;)Z
move-result v0
if-nez v0, :cond_24
invoke-direct {p0}, Lcom/google/common/collect/bi;->xz()Z
move-result v0
if-eqz v0, :cond_0
.line 3653
:cond_24
const/4 v0, 0x1
.line 3657
:goto_25
return v0
:cond_26
const/4 v0, 0x0
goto :goto_25
.end method
.method private xz()Z
.registers 2
.prologue
.line 3636
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
if-eqz v0, :cond_23
.line 3637
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
invoke-interface {v0}, Lcom/google/common/collect/bl;->getNext()Lcom/google/common/collect/bl;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
:goto_c
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
if-eqz v0, :cond_23
.line 3638
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
invoke-direct {p0, v0}, Lcom/google/common/collect/bi;->a(Lcom/google/common/collect/bl;)Z
move-result v0
if-eqz v0, :cond_1a
.line 3639
const/4 v0, 0x1
.line 3643
:goto_19
return v0
.line 3637
:cond_1a
iget-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
invoke-interface {v0}, Lcom/google/common/collect/bl;->getNext()Lcom/google/common/collect/bl;
move-result-object v0
iput-object v0, p0, Lcom/google/common/collect/bi;->aWx:Lcom/google/common/collect/bl;
goto :goto_c
.line 3643
:cond_23
const/4 v0, 0x0
goto :goto_19
.end method
# virtual methods
.method public hasNext()Z
.registers 2
.prologue
.line 3682
iget-object v0, p0, Lcom/google/common/collect/bi;->aWy:Lcom/google/common/collect/ca;
if-eqz v0, :cond_6
const/4 v0, 0x1
:goto_5
return v0
:cond_6
const/4 v0, 0x0
goto :goto_5
.end method
.method public remove()V
.registers 3
.prologue
.line 3696
iget-object v0, p0, Lcom/google/common/collect/bi;->aWz:Lcom/google/common/collect/ca;
if-eqz v0, :cond_19
const/4 v0, 0x1
.line 4049
:goto_5
const-string v1, "no calls to next() since the last call to remove()"
invoke-static {v0, v1}, Lcom/google/common/base/n;->checkState(ZLjava/lang/Object;)V
.line 3697
iget-object v0, p0, Lcom/google/common/collect/bi;->aWl:Lcom/google/common/collect/MapMakerInternalMap;
iget-object v1, p0, Lcom/google/common/collect/bi;->aWz:Lcom/google/common/collect/ca;
invoke-virtual {v1}, Lcom/google/common/collect/ca;->getKey()Ljava/lang/Object;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/collect/MapMakerInternalMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 3698
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/common/collect/bi;->aWz:Lcom/google/common/collect/ca;
.line 3699
return-void
.line 3696
:cond_19
const/4 v0, 0x0
goto :goto_5
.end method
.method final xB()Lcom/google/common/collect/ca;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/collect/MapMakerInternalMap",
"<TK;TV;>.com/google/common/collect/ca;"
}
.end annotation
.prologue
.line 3686
iget-object v0, p0, Lcom/google/common/collect/bi;->aWy:Lcom/google/common/collect/ca;
if-nez v0, :cond_a
.line 3687
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.line 3689
:cond_a
iget-object v0, p0, Lcom/google/common/collect/bi;->aWy:Lcom/google/common/collect/ca;
iput-object v0, p0, Lcom/google/common/collect/bi;->aWz:Lcom/google/common/collect/ca;
.line 3690
invoke-direct {p0}, Lcom/google/common/collect/bi;->advance()V
.line 3691
iget-object v0, p0, Lcom/google/common/collect/bi;->aWz:Lcom/google/common/collect/ca;
return-object v0
.end method