c.smali
.class final Lokhttp3/internal/http2/c;
.super Ljava/lang/Object;
.source "Hpack.java"
# instance fields
.field bXG:[Lokhttp3/internal/http2/a;
.field final byt:Lokio/f;
.field final bza:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lokhttp3/internal/http2/a;",
">;"
}
.end annotation
.end field
.field bzc:I
.field private bze:I
.field private bzf:I
.field private bzg:I
# direct methods
.method constructor <init>(Lokio/s;)V
.registers 3
.prologue
.line 131
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lokhttp3/internal/http2/c;-><init>(Lokio/s;B)V
.line 132
return-void
.end method
.method private constructor <init>(Lokio/s;B)V
.registers 5
.prologue
const/4 v1, 0x0
.line 134
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 117
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/c;->bza:Ljava/util/List;
.line 124
const/16 v0, 0x8
new-array v0, v0, [Lokhttp3/internal/http2/a;
iput-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
.line 126
iget-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/c;->bze:I
.line 127
iput v1, p0, Lokhttp3/internal/http2/c;->bzf:I
.line 128
iput v1, p0, Lokhttp3/internal/http2/c;->bzg:I
.line 136
const/16 v0, 0x1000
iput v0, p0, Lokhttp3/internal/http2/c;->bzc:I
.line 137
invoke-static {p1}, Lokio/m;->b(Lokio/s;)Lokio/f;
move-result-object v0
iput-object v0, p0, Lokhttp3/internal/http2/c;->byt:Lokio/f;
.line 138
return-void
.end method
.method private HB()V
.registers 4
.prologue
const/4 v2, 0x0
.line 155
iget-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
const/4 v1, 0x0
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
.line 156
iget-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/c;->bze:I
.line 157
iput v2, p0, Lokhttp3/internal/http2/c;->bzf:I
.line 158
iput v2, p0, Lokhttp3/internal/http2/c;->bzg:I
.line 159
return-void
.end method
.method private HC()I
.registers 2
.prologue
.line 315
iget-object v0, p0, Lokhttp3/internal/http2/c;->byt:Lokio/f;
invoke-interface {v0}, Lokio/f;->readByte()B
move-result v0
and-int/lit16 v0, v0, 0xff
return v0
.end method
.method private es(I)I
.registers 8
.prologue
.line 163
const/4 v1, 0x0
.line 164
if-lez p1, :cond_42
.line 166
iget-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
:goto_8
iget v2, p0, Lokhttp3/internal/http2/c;->bze:I
if-lt v0, v2, :cond_2b
if-lez p1, :cond_2b
.line 167
iget-object v2, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
aget-object v2, v2, v0
iget v2, v2, Lokhttp3/internal/http2/a;->byW:I
sub-int/2addr p1, v2
.line 168
iget v2, p0, Lokhttp3/internal/http2/c;->bzg:I
iget-object v3, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
aget-object v3, v3, v0
iget v3, v3, Lokhttp3/internal/http2/a;->byW:I
sub-int/2addr v2, v3
iput v2, p0, Lokhttp3/internal/http2/c;->bzg:I
.line 169
iget v2, p0, Lokhttp3/internal/http2/c;->bzf:I
add-int/lit8 v2, v2, -0x1
iput v2, p0, Lokhttp3/internal/http2/c;->bzf:I
.line 170
add-int/lit8 v1, v1, 0x1
.line 166
add-int/lit8 v0, v0, -0x1
goto :goto_8
.line 172
:cond_2b
iget-object v0, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
iget v2, p0, Lokhttp3/internal/http2/c;->bze:I
add-int/lit8 v2, v2, 0x1
iget-object v3, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
iget v4, p0, Lokhttp3/internal/http2/c;->bze:I
add-int/lit8 v4, v4, 0x1
add-int/2addr v4, v1
iget v5, p0, Lokhttp3/internal/http2/c;->bzf:I
invoke-static {v0, v2, v3, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 174
iget v0, p0, Lokhttp3/internal/http2/c;->bze:I
add-int/2addr v0, v1
iput v0, p0, Lokhttp3/internal/http2/c;->bze:I
.line 176
:cond_42
return v1
.end method
.method static ev(I)Z
.registers 2
.prologue
.line 275
if-ltz p0, :cond_a
sget-object v0, Lokhttp3/internal/http2/b;->bXF:[Lokhttp3/internal/http2/a;
const/16 v0, 0x3c
if-gt p0, v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
# virtual methods
.method final HA()V
.registers 3
.prologue
.line 145
iget v0, p0, Lokhttp3/internal/http2/c;->bzc:I
iget v1, p0, Lokhttp3/internal/http2/c;->bzg:I
if-ge v0, v1, :cond_d
.line 146
iget v0, p0, Lokhttp3/internal/http2/c;->bzc:I
if-nez v0, :cond_e
.line 147
invoke-direct {p0}, Lokhttp3/internal/http2/c;->HB()V
.line 152
:cond_d
:goto_d
return-void
.line 149
:cond_e
iget v0, p0, Lokhttp3/internal/http2/c;->bzg:I
iget v1, p0, Lokhttp3/internal/http2/c;->bzc:I
sub-int/2addr v0, v1
invoke-direct {p0, v0}, Lokhttp3/internal/http2/c;->es(I)I
goto :goto_d
.end method
.method final HD()Lokio/ByteString;
.registers 9
.prologue
const/4 v1, 0x0
.line 342
invoke-direct {p0}, Lokhttp3/internal/http2/c;->HC()I
move-result v2
.line 343
and-int/lit16 v0, v2, 0x80
const/16 v3, 0x80
if-ne v0, v3, :cond_52
const/4 v0, 0x1
.line 344
:goto_c
const/16 v3, 0x7f
invoke-virtual {p0, v2, v3}, Lokhttp3/internal/http2/c;->aG(II)I
move-result v2
.line 346
if-eqz v0, :cond_82
.line 347
invoke-static {}, Lokhttp3/internal/http2/u;->RU()Lokhttp3/internal/http2/u;
move-result-object v4
iget-object v0, p0, Lokhttp3/internal/http2/c;->byt:Lokio/f;
int-to-long v2, v2
invoke-interface {v0, v2, v3}, Lokio/f;->X(J)[B
move-result-object v5
.line 1129
new-instance v6, Ljava/io/ByteArrayOutputStream;
invoke-direct {v6}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1130
iget-object v0, v4, Lokhttp3/internal/http2/u;->bYs:Lokhttp3/internal/http2/v;
move v2, v1
move-object v3, v0
move v0, v1
.line 1133
:goto_29
array-length v7, v5
if-ge v1, v7, :cond_5a
.line 1134
aget-byte v7, v5, v1
and-int/lit16 v7, v7, 0xff
.line 1135
shl-int/lit8 v2, v2, 0x8
or-int/2addr v2, v7
.line 1136
add-int/lit8 v0, v0, 0x8
.line 1137
:goto_35
const/16 v7, 0x8
if-lt v0, v7, :cond_57
.line 1138
add-int/lit8 v7, v0, -0x8
ushr-int v7, v2, v7
and-int/lit16 v7, v7, 0xff
.line 1139
iget-object v3, v3, Lokhttp3/internal/http2/v;->bYt:[Lokhttp3/internal/http2/v;
aget-object v3, v3, v7
.line 1140
iget-object v7, v3, Lokhttp3/internal/http2/v;->bYt:[Lokhttp3/internal/http2/v;
if-nez v7, :cond_54
.line 1142
iget v7, v3, Lokhttp3/internal/http2/v;->bzy:I
invoke-virtual {v6, v7}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 1143
iget v3, v3, Lokhttp3/internal/http2/v;->bzz:I
sub-int/2addr v0, v3
.line 1144
iget-object v3, v4, Lokhttp3/internal/http2/u;->bYs:Lokhttp3/internal/http2/v;
goto :goto_35
:cond_52
move v0, v1
.line 343
goto :goto_c
.line 1147
:cond_54
add-int/lit8 v0, v0, -0x8
.line 1149
goto :goto_35
.line 1133
:cond_57
add-int/lit8 v1, v1, 0x1
goto :goto_29
.line 1152
:cond_5a
:goto_5a
if-lez v0, :cond_79
.line 1153
rsub-int/lit8 v1, v0, 0x8
shl-int v1, v2, v1
and-int/lit16 v1, v1, 0xff
.line 1154
iget-object v3, v3, Lokhttp3/internal/http2/v;->bYt:[Lokhttp3/internal/http2/v;
aget-object v1, v3, v1
.line 1155
iget-object v3, v1, Lokhttp3/internal/http2/v;->bYt:[Lokhttp3/internal/http2/v;
if-nez v3, :cond_79
iget v3, v1, Lokhttp3/internal/http2/v;->bzz:I
if-gt v3, v0, :cond_79
.line 1158
iget v3, v1, Lokhttp3/internal/http2/v;->bzy:I
invoke-virtual {v6, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 1159
iget v1, v1, Lokhttp3/internal/http2/v;->bzz:I
sub-int/2addr v0, v1
.line 1160
iget-object v3, v4, Lokhttp3/internal/http2/u;->bYs:Lokhttp3/internal/http2/v;
goto :goto_5a
.line 1163
:cond_79
invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
.line 347
invoke-static {v0}, Lokio/ByteString;->of([B)Lokio/ByteString;
move-result-object v0
.line 349
:goto_81
return-object v0
:cond_82
iget-object v0, p0, Lokhttp3/internal/http2/c;->byt:Lokio/f;
int-to-long v2, v2
invoke-interface {v0, v2, v3}, Lokio/f;->T(J)Lokio/ByteString;
move-result-object v0
goto :goto_81
.end method
.method final a(Lokhttp3/internal/http2/a;)V
.registers 8
.prologue
.line 280
iget-object v0, p0, Lokhttp3/internal/http2/c;->bza:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 282
iget v0, p1, Lokhttp3/internal/http2/a;->byW:I
.line 288
iget v1, p0, Lokhttp3/internal/http2/c;->bzc:I
if-le v0, v1, :cond_f
.line 289
invoke-direct {p0}, Lokhttp3/internal/http2/c;->HB()V
.line 312
:goto_e
return-void
.line 294
:cond_f
iget v1, p0, Lokhttp3/internal/http2/c;->bzg:I
add-int/2addr v1, v0
iget v2, p0, Lokhttp3/internal/http2/c;->bzc:I
sub-int/2addr v1, v2
.line 295
invoke-direct {p0, v1}, Lokhttp3/internal/http2/c;->es(I)I
.line 298
iget v1, p0, Lokhttp3/internal/http2/c;->bzf:I
add-int/lit8 v1, v1, 0x1
iget-object v2, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v2, v2
if-le v1, v2, :cond_3d
.line 299
iget-object v1, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v1, v1
shl-int/lit8 v1, v1, 0x1
new-array v1, v1, [Lokhttp3/internal/http2/a;
.line 300
iget-object v2, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
const/4 v3, 0x0
iget-object v4, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v4, v4
iget-object v5, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v5, v5
invoke-static {v2, v3, v1, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 301
iget-object v2, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v2, v2
add-int/lit8 v2, v2, -0x1
iput v2, p0, Lokhttp3/internal/http2/c;->bze:I
.line 302
iput-object v1, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
.line 304
:cond_3d
iget v1, p0, Lokhttp3/internal/http2/c;->bze:I
add-int/lit8 v2, v1, -0x1
iput v2, p0, Lokhttp3/internal/http2/c;->bze:I
.line 305
iget-object v2, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
aput-object p1, v2, v1
.line 306
iget v1, p0, Lokhttp3/internal/http2/c;->bzf:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lokhttp3/internal/http2/c;->bzf:I
.line 311
iget v1, p0, Lokhttp3/internal/http2/c;->bzg:I
add-int/2addr v0, v1
iput v0, p0, Lokhttp3/internal/http2/c;->bzg:I
goto :goto_e
.end method
.method final aG(II)I
.registers 6
.prologue
.line 319
and-int v0, p1, p2
.line 320
if-ge v0, p2, :cond_5
.line 337
:goto_4
return v0
.line 326
:cond_5
const/4 v0, 0x0
.line 328
:goto_6
invoke-direct {p0}, Lokhttp3/internal/http2/c;->HC()I
move-result v1
.line 329
and-int/lit16 v2, v1, 0x80
if-eqz v2, :cond_15
.line 330
and-int/lit8 v1, v1, 0x7f
shl-int/2addr v1, v0
add-int/2addr p2, v1
.line 331
add-int/lit8 v0, v0, 0x7
goto :goto_6
.line 333
:cond_15
shl-int v0, v1, v0
add-int/2addr v0, p2
.line 337
goto :goto_4
.end method
.method final et(I)I
.registers 3
.prologue
.line 233
iget v0, p0, Lokhttp3/internal/http2/c;->bze:I
add-int/lit8 v0, v0, 0x1
add-int/2addr v0, p1
return v0
.end method
.method final eu(I)Lokio/ByteString;
.registers 5
.prologue
.line 262
invoke-static {p1}, Lokhttp3/internal/http2/c;->ev(I)Z
move-result v0
if-eqz v0, :cond_d
.line 263
sget-object v0, Lokhttp3/internal/http2/b;->bXF:[Lokhttp3/internal/http2/a;
aget-object v0, v0, p1
iget-object v0, v0, Lokhttp3/internal/http2/a;->byU:Lokio/ByteString;
.line 270
:goto_c
return-object v0
.line 265
:cond_d
sget-object v0, Lokhttp3/internal/http2/b;->bXF:[Lokhttp3/internal/http2/a;
add-int/lit8 v0, p1, -0x3d
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/c;->et(I)I
move-result v0
.line 266
if-ltz v0, :cond_1c
iget-object v1, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
array-length v1, v1
if-lt v0, v1, :cond_33
.line 267
:cond_1c
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Header index too large "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
add-int/lit8 v2, p1, 0x1
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 270
:cond_33
iget-object v1, p0, Lokhttp3/internal/http2/c;->bXG:[Lokhttp3/internal/http2/a;
aget-object v0, v1, v0
iget-object v0, v0, Lokhttp3/internal/http2/a;->byU:Lokio/ByteString;
goto :goto_c
.end method