em.smali

.class final Lcom/google/protobuf/em;
.super Ljava/lang/Object;
.source "SmallSortedMap.java"

# interfaces
.implements Ljava/util/Iterator;


# annotations
.annotation system Ldalvik/annotation/Signature;
    value = {
        "Ljava/lang/Object;",
        "Ljava/util/Iterator",
        "<",
        "Ljava/util/Map$Entry",
        "<TK;TV;>;>;"
    }
.end annotation


# instance fields
.field private synthetic bnD:Lcom/google/protobuf/ej;

.field private bnE:Z

.field private bnF:Ljava/util/Iterator;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Iterator",
            "<",
            "Ljava/util/Map$Entry",
            "<TK;TV;>;>;"
        }
    .end annotation
.end field

.field private pos:I


# direct methods
.method private constructor <init>(Lcom/google/protobuf/ej;)V
    .registers 3

    .prologue
    .line 532
    iput-object p1, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 534
    const/4 v0, -0x1

    iput v0, p0, Lcom/google/protobuf/em;->pos:I

    return-void
.end method

.method synthetic constructor <init>(Lcom/google/protobuf/ej;B)V
    .registers 3

    .prologue
    .line 532
    invoke-direct {p0, p1}, Lcom/google/protobuf/em;-><init>(Lcom/google/protobuf/ej;)V

    return-void
.end method

.method private Fk()Ljava/util/Iterator;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/Iterator",
            "<",
            "Ljava/util/Map$Entry",
            "<TK;TV;>;>;"
        }
    .end annotation

    .prologue
    .line 577
    iget-object v0, p0, Lcom/google/protobuf/em;->bnF:Ljava/util/Iterator;

    if-nez v0, :cond_14

    .line 578
    iget-object v0, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v0}, Lcom/google/protobuf/ej;->c(Lcom/google/protobuf/ej;)Ljava/util/Map;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v0

    iput-object v0, p0, Lcom/google/protobuf/em;->bnF:Ljava/util/Iterator;

    .line 580
    :cond_14
    iget-object v0, p0, Lcom/google/protobuf/em;->bnF:Ljava/util/Iterator;

    return-object v0
.end method


# virtual methods
.method public final hasNext()Z
    .registers 3

    .prologue
    .line 540
    iget v0, p0, Lcom/google/protobuf/em;->pos:I

    add-int/lit8 v0, v0, 0x1

    iget-object v1, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v1}, Lcom/google/protobuf/ej;->b(Lcom/google/protobuf/ej;)Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-lt v0, v1, :cond_1a

    .line 541
    invoke-direct {p0}, Lcom/google/protobuf/em;->Fk()Ljava/util/Iterator;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_1c

    :cond_1a
    const/4 v0, 0x1

    :goto_1b
    return v0

    :cond_1c
    const/4 v0, 0x0

    goto :goto_1b
.end method

.method public final synthetic next()Ljava/lang/Object;
    .registers 3

    .prologue
    .line 532
    .line 1546
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/google/protobuf/em;->bnE:Z

    .line 1549
    iget v0, p0, Lcom/google/protobuf/em;->pos:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/em;->pos:I

    iget-object v1, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v1}, Lcom/google/protobuf/ej;->b(Lcom/google/protobuf/ej;)Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-ge v0, v1, :cond_24

    .line 1550
    iget-object v0, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v0}, Lcom/google/protobuf/ej;->b(Lcom/google/protobuf/ej;)Ljava/util/List;

    move-result-object v0

    iget v1, p0, Lcom/google/protobuf/em;->pos:I

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    :goto_23
    return-object v0

    .line 1552
    :cond_24
    invoke-direct {p0}, Lcom/google/protobuf/em;->Fk()Ljava/util/Iterator;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    goto :goto_23
.end method

.method public final remove()V
    .registers 4

    .prologue
    .line 557
    iget-boolean v0, p0, Lcom/google/protobuf/em;->bnE:Z

    if-nez v0, :cond_c

    .line 558
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "remove() was called before next()"

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 560
    :cond_c
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/google/protobuf/em;->bnE:Z

    .line 561
    iget-object v0, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v0}, Lcom/google/protobuf/ej;->a(Lcom/google/protobuf/ej;)V

    .line 563
    iget v0, p0, Lcom/google/protobuf/em;->pos:I

    iget-object v1, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    invoke-static {v1}, Lcom/google/protobuf/ej;->b(Lcom/google/protobuf/ej;)Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-ge v0, v1, :cond_2e

    .line 564
    iget-object v0, p0, Lcom/google/protobuf/em;->bnD:Lcom/google/protobuf/ej;

    iget v1, p0, Lcom/google/protobuf/em;->pos:I

    add-int/lit8 v2, v1, -0x1

    iput v2, p0, Lcom/google/protobuf/em;->pos:I

    invoke-static {v0, v1}, Lcom/google/protobuf/ej;->a(Lcom/google/protobuf/ej;I)Ljava/lang/Object;

    .line 568
    :goto_2d
    return-void

    .line 566
    :cond_2e
    invoke-direct {p0}, Lcom/google/protobuf/em;->Fk()Ljava/util/Iterator;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Iterator;->remove()V

    goto :goto_2d
.end method