AntiCollisionHashMap$HashIterator.smali
.class abstract Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;
.super Ljava/lang/Object;
.source "AntiCollisionHashMap.java"
# interfaces
.implements Ljava/util/Iterator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x402
name = "HashIterator"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Ljava/util/Iterator<",
"TE;>;"
}
.end annotation
# instance fields
.field current:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry<",
"TK;TV;>;"
}
.end annotation
.end field
.field expectedModCount:I
.field index:I
.field next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry<",
"TK;TV;>;"
}
.end annotation
.end field
.field final synthetic this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
# direct methods
.method constructor <init>(Lcom/alibaba/fastjson/util/AntiCollisionHashMap;)V
.registers 4
.line 704
iput-object p1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 705
iget v0, p1, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->modCount:I
iput v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->expectedModCount:I
.line 706
iget v0, p1, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->size:I
if-lez v0, :cond_1f
.line 707
iget-object p1, p1, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->table:[Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.line 708
:goto_f
iget v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->index:I
array-length v1, p1
if-ge v0, v1, :cond_1f
add-int/lit8 v1, v0, 0x1
iput v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->index:I
aget-object v0, p1, v0
iput-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-nez v0, :cond_1f
goto :goto_f
:cond_1f
return-void
.end method
# virtual methods
.method public final hasNext()Z
.registers 2
.line 714
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-eqz v0, :cond_6
const/4 v0, 0x1
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
return v0
.end method
.method final nextEntry()Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry<",
"TK;TV;>;"
}
.end annotation
.line 718
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
iget v0, v0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->modCount:I
iget v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->expectedModCount:I
if-ne v0, v1, :cond_2f
.line 720
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-eqz v0, :cond_29
.line 724
iget-object v1, v0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
iput-object v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-nez v1, :cond_26
.line 725
iget-object v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
iget-object v1, v1, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->table:[Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.line 726
:goto_16
iget v2, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->index:I
array-length v3, v1
if-ge v2, v3, :cond_26
add-int/lit8 v3, v2, 0x1
iput v3, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->index:I
aget-object v2, v1, v2
iput-object v2, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->next:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-nez v2, :cond_26
goto :goto_16
.line 729
:cond_26
iput-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->current:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
return-object v0
.line 722
:cond_29
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.line 719
:cond_2f
new-instance v0, Ljava/util/ConcurrentModificationException;
invoke-direct {v0}, Ljava/util/ConcurrentModificationException;-><init>()V
throw v0
.end method
.method public remove()V
.registers 3
.line 734
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->current:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
if-eqz v0, :cond_25
.line 736
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
iget v0, v0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->modCount:I
iget v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->expectedModCount:I
if-ne v0, v1, :cond_1f
.line 738
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->current:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
iget-object v0, v0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;->key:Ljava/lang/Object;
const/4 v1, 0x0
.line 739
iput-object v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->current:Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.line 740
iget-object v1, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->removeEntryForKey(Ljava/lang/Object;)Lcom/alibaba/fastjson/util/AntiCollisionHashMap$Entry;
.line 741
iget-object v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->this$0:Lcom/alibaba/fastjson/util/AntiCollisionHashMap;
iget v0, v0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap;->modCount:I
iput v0, p0, Lcom/alibaba/fastjson/util/AntiCollisionHashMap$HashIterator;->expectedModCount:I
return-void
.line 737
:cond_1f
new-instance v0, Ljava/util/ConcurrentModificationException;
invoke-direct {v0}, Ljava/util/ConcurrentModificationException;-><init>()V
throw v0
.line 735
:cond_25
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.end method