First Upload

Just the APK
Force update disabled, will only work offline.
This commit is contained in:
supermegamestre
2026-01-26 00:26:29 -03:00
commit 4bbd74a497
44413 changed files with 11043538 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
.class public final Lokhttp3/internal/http2/ConnectionShutdownException;
.super Ljava/io/IOException;
.source "SourceFile"
# direct methods
.method public constructor <init>()V
.locals 0
.line 24
invoke-direct {p0}, Ljava/io/IOException;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,261 @@
.class public final enum Lokhttp3/internal/http2/ErrorCode;
.super Ljava/lang/Enum;
.source "SourceFile"
# static fields
.field private static final synthetic $VALUES:[Lokhttp3/internal/http2/ErrorCode;
.field public static final enum CANCEL:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum COMPRESSION_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum CONNECT_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum ENHANCE_YOUR_CALM:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum FLOW_CONTROL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum HTTP_1_1_REQUIRED:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum INADEQUATE_SECURITY:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum INTERNAL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum NO_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.field public static final enum REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;
# instance fields
.field public final httpCode:I
# direct methods
.method static constructor <clinit>()V
.locals 14
.line 21
new-instance v0, Lokhttp3/internal/http2/ErrorCode;
const-string v1, "NO_ERROR"
const/4 v2, 0x0
invoke-direct {v0, v1, v2, v2}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v0, Lokhttp3/internal/http2/ErrorCode;->NO_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 23
new-instance v1, Lokhttp3/internal/http2/ErrorCode;
const-string v2, "PROTOCOL_ERROR"
const/4 v3, 0x1
invoke-direct {v1, v2, v3, v3}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v1, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 25
new-instance v2, Lokhttp3/internal/http2/ErrorCode;
const-string v3, "INTERNAL_ERROR"
const/4 v4, 0x2
invoke-direct {v2, v3, v4, v4}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v2, Lokhttp3/internal/http2/ErrorCode;->INTERNAL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 27
new-instance v3, Lokhttp3/internal/http2/ErrorCode;
const-string v4, "FLOW_CONTROL_ERROR"
const/4 v5, 0x3
invoke-direct {v3, v4, v5, v5}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v3, Lokhttp3/internal/http2/ErrorCode;->FLOW_CONTROL_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 29
new-instance v4, Lokhttp3/internal/http2/ErrorCode;
const-string v5, "REFUSED_STREAM"
const/4 v6, 0x4
const/4 v7, 0x7
invoke-direct {v4, v5, v6, v7}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v4, Lokhttp3/internal/http2/ErrorCode;->REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;
.line 31
new-instance v5, Lokhttp3/internal/http2/ErrorCode;
const-string v6, "CANCEL"
const/4 v8, 0x5
const/16 v9, 0x8
invoke-direct {v5, v6, v8, v9}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v5, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
.line 33
new-instance v6, Lokhttp3/internal/http2/ErrorCode;
const-string v8, "COMPRESSION_ERROR"
const/4 v10, 0x6
const/16 v11, 0x9
invoke-direct {v6, v8, v10, v11}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v6, Lokhttp3/internal/http2/ErrorCode;->COMPRESSION_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 35
new-instance v8, Lokhttp3/internal/http2/ErrorCode;
const-string v10, "CONNECT_ERROR"
const/16 v12, 0xa
invoke-direct {v8, v10, v7, v12}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v8, Lokhttp3/internal/http2/ErrorCode;->CONNECT_ERROR:Lokhttp3/internal/http2/ErrorCode;
.line 37
new-instance v10, Lokhttp3/internal/http2/ErrorCode;
const-string v7, "ENHANCE_YOUR_CALM"
const/16 v13, 0xb
invoke-direct {v10, v7, v9, v13}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v10, Lokhttp3/internal/http2/ErrorCode;->ENHANCE_YOUR_CALM:Lokhttp3/internal/http2/ErrorCode;
.line 39
new-instance v9, Lokhttp3/internal/http2/ErrorCode;
const-string v7, "INADEQUATE_SECURITY"
const/16 v13, 0xc
invoke-direct {v9, v7, v11, v13}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v9, Lokhttp3/internal/http2/ErrorCode;->INADEQUATE_SECURITY:Lokhttp3/internal/http2/ErrorCode;
.line 41
new-instance v11, Lokhttp3/internal/http2/ErrorCode;
const-string v7, "HTTP_1_1_REQUIRED"
const/16 v13, 0xd
invoke-direct {v11, v7, v12, v13}, Lokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V
sput-object v11, Lokhttp3/internal/http2/ErrorCode;->HTTP_1_1_REQUIRED:Lokhttp3/internal/http2/ErrorCode;
move-object v7, v8
move-object v8, v10
move-object v10, v11
filled-new-array/range {v0 .. v10}, [Lokhttp3/internal/http2/ErrorCode;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/ErrorCode;->$VALUES:[Lokhttp3/internal/http2/ErrorCode;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;II)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)V"
}
.end annotation
.line 45
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
iput p3, p0, Lokhttp3/internal/http2/ErrorCode;->httpCode:I
return-void
.end method
.method public static fromHttp2(I)Lokhttp3/internal/http2/ErrorCode;
.locals 5
.line 50
invoke-static {}, Lokhttp3/internal/http2/ErrorCode;->values()[Lokhttp3/internal/http2/ErrorCode;
move-result-object v0
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_1
aget-object v3, v0, v2
.line 51
iget v4, v3, Lokhttp3/internal/http2/ErrorCode;->httpCode:I
if-ne v4, p0, :cond_0
return-object v3
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
const/4 p0, 0x0
return-object p0
.end method
.method public static valueOf(Ljava/lang/String;)Lokhttp3/internal/http2/ErrorCode;
.locals 1
const-class v0, Lokhttp3/internal/http2/ErrorCode;
.line 19
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lokhttp3/internal/http2/ErrorCode;
return-object p0
.end method
.method public static values()[Lokhttp3/internal/http2/ErrorCode;
.locals 1
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->$VALUES:[Lokhttp3/internal/http2/ErrorCode;
.line 19
invoke-virtual {v0}, [Lokhttp3/internal/http2/ErrorCode;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lokhttp3/internal/http2/ErrorCode;
return-object v0
.end method

View File

@@ -0,0 +1,245 @@
.class public final Lokhttp3/internal/http2/Header;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final PSEUDO_PREFIX:Lokio/ByteString;
.field public static final RESPONSE_STATUS:Lokio/ByteString;
.field public static final TARGET_AUTHORITY:Lokio/ByteString;
.field public static final TARGET_METHOD:Lokio/ByteString;
.field public static final TARGET_PATH:Lokio/ByteString;
.field public static final TARGET_SCHEME:Lokio/ByteString;
# instance fields
.field public final hpackSize:I
.field public final name:Lokio/ByteString;
.field public final value:Lokio/ByteString;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-string v0, ":"
.line 24
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->PSEUDO_PREFIX:Lokio/ByteString;
const-string v0, ":status"
.line 32
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->RESPONSE_STATUS:Lokio/ByteString;
const-string v0, ":method"
.line 33
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->TARGET_METHOD:Lokio/ByteString;
const-string v0, ":path"
.line 34
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->TARGET_PATH:Lokio/ByteString;
const-string v0, ":scheme"
.line 35
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->TARGET_SCHEME:Lokio/ByteString;
const-string v0, ":authority"
.line 36
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Header;->TARGET_AUTHORITY:Lokio/ByteString;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;)V
.locals 0
.line 47
invoke-static {p1}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object p1
invoke-static {p2}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object p2
invoke-direct {p0, p1, p2}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
return-void
.end method
.method public constructor <init>(Lokio/ByteString;Ljava/lang/String;)V
.locals 0
.line 51
invoke-static {p2}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object p2
invoke-direct {p0, p1, p2}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
return-void
.end method
.method public constructor <init>(Lokio/ByteString;Lokio/ByteString;)V
.locals 0
.line 54
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
iput-object p2, p0, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
.line 57
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result p1
add-int/lit8 p1, p1, 0x20
invoke-virtual {p2}, Lokio/ByteString;->size()I
move-result p2
add-int/2addr p1, p2
iput p1, p0, Lokhttp3/internal/http2/Header;->hpackSize:I
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.line 61
instance-of v0, p1, Lokhttp3/internal/http2/Header;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 62
check-cast p1, Lokhttp3/internal/http2/Header;
iget-object v0, p0, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
.line 63
iget-object v2, p1, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
invoke-virtual {v0, v2}, Lokio/ByteString;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
iget-object p1, p1, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
.line 64
invoke-virtual {v0, p1}, Lokio/ByteString;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public hashCode()I
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
.line 71
invoke-virtual {v0}, Lokio/ByteString;->hashCode()I
move-result v0
const/16 v1, 0x20f
add-int/2addr v1, v0
mul-int/lit8 v1, v1, 0x1f
iget-object v0, p0, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
.line 72
invoke-virtual {v0}, Lokio/ByteString;->hashCode()I
move-result v0
add-int/2addr v1, v0
return v1
.end method
.method public toString()Ljava/lang/String;
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
.line 77
invoke-virtual {v0}, Lokio/ByteString;->utf8()Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
invoke-virtual {v1}, Lokio/ByteString;->utf8()Ljava/lang/String;
move-result-object v1
filled-new-array {v0, v1}, [Ljava/lang/Object;
move-result-object v0
const-string v1, "%s: %s"
invoke-static {v1, v0}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,956 @@
.class public final Lokhttp3/internal/http2/Hpack$Reader;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Hpack;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Reader"
.end annotation
# instance fields
.field public dynamicTable:[Lokhttp3/internal/http2/Header;
.field public dynamicTableByteCount:I
.field public headerCount:I
.field public final headerList:Ljava/util/List;
.field public final headerTableSizeSetting:I
.field public maxDynamicTableByteCount:I
.field public nextHeaderIndex:I
.field public final source:Lokio/BufferedSource;
# direct methods
.method public constructor <init>(IILokio/Source;)V
.locals 1
.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/Hpack$Reader;->headerList:Ljava/util/List;
const/16 v0, 0x8
new-array v0, v0, [Lokhttp3/internal/http2/Header;
iput-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
iput p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerTableSizeSetting:I
iput p2, p0, Lokhttp3/internal/http2/Hpack$Reader;->maxDynamicTableByteCount:I
.line 137
invoke-static {p3}, Lokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource;
move-result-object p1
iput-object p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
return-void
.end method
.method public constructor <init>(ILokio/Source;)V
.locals 0
.line 131
invoke-direct {p0, p1, p1, p2}, Lokhttp3/internal/http2/Hpack$Reader;-><init>(IILokio/Source;)V
return-void
.end method
# virtual methods
.method public final adjustDynamicTableByteCount()V
.locals 2
iget v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->maxDynamicTableByteCount:I
iget v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
if-ge v0, v1, :cond_1
if-nez v0, :cond_0
.line 147
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->clearDynamicTable()V
goto :goto_0
:cond_0
sub-int/2addr v1, v0
.line 149
invoke-virtual {p0, v1}, Lokhttp3/internal/http2/Hpack$Reader;->evictToRecoverBytes(I)I
:cond_1
:goto_0
return-void
.end method
.method public final clearDynamicTable()V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
const/4 v1, 0x0
.line 155
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 156
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
return-void
.end method
.method public final dynamicTableIndex(I)I
.locals 1
iget v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
add-int/lit8 v0, v0, 0x1
add-int/2addr v0, p1
return v0
.end method
.method public final evictToRecoverBytes(I)I
.locals 4
const/4 v0, 0x0
if-lez p1, :cond_1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 166
array-length v1, v1
add-int/lit8 v1, v1, -0x1
:goto_0
iget v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
if-lt v1, v2, :cond_0
if-lez p1, :cond_0
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 167
aget-object v2, v2, v1
iget v2, v2, Lokhttp3/internal/http2/Header;->hpackSize:I
sub-int/2addr p1, v2
iget v3, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
sub-int/2addr v3, v2
iput v3, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
iget v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
add-int/lit8 v2, v2, -0x1
iput v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
add-int/lit8 v0, v0, 0x1
add-int/lit8 v1, v1, -0x1
goto :goto_0
:cond_0
iget-object p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
add-int/lit8 v1, v2, 0x1
add-int/lit8 v2, v2, 0x1
add-int/2addr v2, v0
iget v3, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
.line 172
invoke-static {p1, v1, p1, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
add-int/2addr p1, v0
iput p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
:cond_1
return v0
.end method
.method public getAndResetHeaderList()Ljava/util/List;
.locals 2
.line 213
new-instance v0, Ljava/util/ArrayList;
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 214
invoke-interface {v1}, Ljava/util/List;->clear()V
return-object v0
.end method
.method public final getName(I)Lokio/ByteString;
.locals 3
.line 262
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->isStaticHeader(I)Z
move-result v0
if-eqz v0, :cond_0
.line 263
sget-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
aget-object p1, v0, p1
iget-object p1, p1, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
return-object p1
.line 265
:cond_0
sget-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v0, v0
sub-int v0, p1, v0
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableIndex(I)I
move-result v0
if-ltz v0, :cond_1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 266
array-length v2, v1
if-ge v0, v2, :cond_1
.line 270
aget-object p1, v1, v0
iget-object p1, p1, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
return-object p1
.line 267
:cond_1
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Header index too large "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 p1, p1, 0x1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final insertIntoDynamicTable(ILokhttp3/internal/http2/Header;)V
.locals 5
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 280
invoke-interface {v0, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 282
iget v0, p2, Lokhttp3/internal/http2/Header;->hpackSize:I
const/4 v1, -0x1
if-eq p1, v1, :cond_0
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 284
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableIndex(I)I
move-result v3
aget-object v2, v2, v3
iget v2, v2, Lokhttp3/internal/http2/Header;->hpackSize:I
sub-int/2addr v0, v2
:cond_0
iget v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->maxDynamicTableByteCount:I
if-le v0, v2, :cond_1
.line 289
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->clearDynamicTable()V
return-void
:cond_1
iget v3, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
add-int/2addr v3, v0
sub-int/2addr v3, v2
.line 295
invoke-virtual {p0, v3}, Lokhttp3/internal/http2/Hpack$Reader;->evictToRecoverBytes(I)I
move-result v2
if-ne p1, v1, :cond_3
iget p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
add-int/lit8 p1, p1, 0x1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 298
array-length v2, v1
if-le p1, v2, :cond_2
.line 299
array-length p1, v1
mul-int/lit8 p1, p1, 0x2
new-array p1, p1, [Lokhttp3/internal/http2/Header;
.line 300
array-length v2, v1
array-length v3, v1
const/4 v4, 0x0
invoke-static {v1, v4, p1, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 301
array-length v1, v1
add-int/lit8 v1, v1, -0x1
iput v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
iput-object p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
:cond_2
iget p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
add-int/lit8 v1, p1, -0x1
iput v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->nextHeaderIndex:I
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 305
aput-object p2, v1, p1
iget p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerCount:I
goto :goto_0
.line 308
:cond_3
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableIndex(I)I
move-result v1
add-int/2addr v1, v2
add-int/2addr p1, v1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 309
aput-object p2, v1, p1
:goto_0
iget p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
add-int/2addr p1, v0
iput p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableByteCount:I
return-void
.end method
.method public final isStaticHeader(I)Z
.locals 2
if-ltz p1, :cond_0
.line 275
sget-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v0, v0
const/4 v1, 0x1
sub-int/2addr v0, v1
if-gt p1, v0, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method public final readByte()I
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
.line 315
invoke-interface {v0}, Lokio/BufferedSource;->readByte()B
move-result v0
and-int/lit16 v0, v0, 0xff
return v0
.end method
.method public readByteString()Lokio/ByteString;
.locals 5
.line 342
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByte()I
move-result v0
and-int/lit16 v1, v0, 0x80
const/16 v2, 0x80
if-ne v1, v2, :cond_0
const/4 v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
const/16 v2, 0x7f
.line 344
invoke-virtual {p0, v0, v2}, Lokhttp3/internal/http2/Hpack$Reader;->readInt(II)I
move-result v0
if-eqz v1, :cond_1
.line 347
invoke-static {}, Lokhttp3/internal/http2/Huffman;->get()Lokhttp3/internal/http2/Huffman;
move-result-object v1
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
int-to-long v3, v0
invoke-interface {v2, v3, v4}, Lokio/BufferedSource;->readByteArray(J)[B
move-result-object v0
invoke-virtual {v1, v0}, Lokhttp3/internal/http2/Huffman;->decode([B)[B
move-result-object v0
invoke-static {v0}, Lokio/ByteString;->of([B)Lokio/ByteString;
move-result-object v0
return-object v0
:cond_1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
int-to-long v2, v0
.line 349
invoke-interface {v1, v2, v3}, Lokio/BufferedSource;->readByteString(J)Lokio/ByteString;
move-result-object v0
return-object v0
.end method
.method public readHeaders()V
.locals 4
:goto_0
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
.line 184
invoke-interface {v0}, Lokio/BufferedSource;->exhausted()Z
move-result v0
if-nez v0, :cond_8
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->source:Lokio/BufferedSource;
.line 185
invoke-interface {v0}, Lokio/BufferedSource;->readByte()B
move-result v0
and-int/lit16 v1, v0, 0xff
const/16 v2, 0x80
if-eq v1, v2, :cond_7
and-int/lit16 v3, v0, 0x80
if-ne v3, v2, :cond_0
const/16 v0, 0x7f
.line 189
invoke-virtual {p0, v1, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readInt(II)I
move-result v0
add-int/lit8 v0, v0, -0x1
.line 190
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readIndexedHeader(I)V
goto :goto_0
:cond_0
const/16 v2, 0x40
if-ne v1, v2, :cond_1
.line 192
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readLiteralHeaderWithIncrementalIndexingNewName()V
goto :goto_0
:cond_1
and-int/lit8 v3, v0, 0x40
if-ne v3, v2, :cond_2
const/16 v0, 0x3f
.line 194
invoke-virtual {p0, v1, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readInt(II)I
move-result v0
add-int/lit8 v0, v0, -0x1
.line 195
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readLiteralHeaderWithIncrementalIndexingIndexedName(I)V
goto :goto_0
:cond_2
and-int/lit8 v0, v0, 0x20
const/16 v2, 0x20
if-ne v0, v2, :cond_4
const/16 v0, 0x1f
.line 197
invoke-virtual {p0, v1, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readInt(II)I
move-result v0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->maxDynamicTableByteCount:I
if-ltz v0, :cond_3
iget v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerTableSizeSetting:I
if-gt v0, v1, :cond_3
.line 202
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->adjustDynamicTableByteCount()V
goto :goto_0
.line 200
:cond_3
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Invalid dynamic table size update "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->maxDynamicTableByteCount:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
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
:cond_4
const/16 v0, 0x10
if-eq v1, v0, :cond_6
if-nez v1, :cond_5
goto :goto_1
:cond_5
const/16 v0, 0xf
.line 206
invoke-virtual {p0, v1, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readInt(II)I
move-result v0
add-int/lit8 v0, v0, -0x1
.line 207
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Hpack$Reader;->readLiteralHeaderWithoutIndexingIndexedName(I)V
goto :goto_0
.line 204
:cond_6
:goto_1
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readLiteralHeaderWithoutIndexingNewName()V
goto/16 :goto_0
.line 187
:cond_7
new-instance v0, Ljava/io/IOException;
const-string v1, "index == 0"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:cond_8
return-void
.end method
.method public final readIndexedHeader(I)V
.locals 3
.line 219
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->isStaticHeader(I)Z
move-result v0
if-eqz v0, :cond_0
.line 220
sget-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
aget-object p1, v0, p1
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 221
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.line 223
:cond_0
sget-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v0, v0
sub-int v0, p1, v0
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTableIndex(I)I
move-result v0
if-ltz v0, :cond_1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 224
array-length v2, v1
if-ge v0, v2, :cond_1
iget-object p1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 227
aget-object v0, v1, v0
invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:goto_0
return-void
.line 225
:cond_1
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Header index too large "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 p1, p1, 0x1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public readInt(II)I
.locals 2
and-int/2addr p1, p2
if-ge p1, p2, :cond_0
return p1
:cond_0
const/4 p1, 0x0
.line 328
:goto_0
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByte()I
move-result v0
and-int/lit16 v1, v0, 0x80
if-eqz v1, :cond_1
and-int/lit8 v0, v0, 0x7f
shl-int/2addr v0, p1
add-int/2addr p2, v0
add-int/lit8 p1, p1, 0x7
goto :goto_0
:cond_1
shl-int p1, v0, p1
add-int/2addr p2, p1
return p2
.end method
.method public final readLiteralHeaderWithIncrementalIndexingIndexedName(I)V
.locals 2
.line 250
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->getName(I)Lokio/ByteString;
move-result-object p1
.line 251
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v0
.line 252
new-instance v1, Lokhttp3/internal/http2/Header;
invoke-direct {v1, p1, v0}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
const/4 p1, -0x1
invoke-virtual {p0, p1, v1}, Lokhttp3/internal/http2/Hpack$Reader;->insertIntoDynamicTable(ILokhttp3/internal/http2/Header;)V
return-void
.end method
.method public final readLiteralHeaderWithIncrementalIndexingNewName()V
.locals 3
.line 256
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v0
invoke-static {v0}, Lokhttp3/internal/http2/Hpack;->checkLowercase(Lokio/ByteString;)Lokio/ByteString;
move-result-object v0
.line 257
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v1
.line 258
new-instance v2, Lokhttp3/internal/http2/Header;
invoke-direct {v2, v0, v1}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
const/4 v0, -0x1
invoke-virtual {p0, v0, v2}, Lokhttp3/internal/http2/Hpack$Reader;->insertIntoDynamicTable(ILokhttp3/internal/http2/Header;)V
return-void
.end method
.method public final readLiteralHeaderWithoutIndexingIndexedName(I)V
.locals 3
.line 237
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Hpack$Reader;->getName(I)Lokio/ByteString;
move-result-object p1
.line 238
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v0
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 239
new-instance v2, Lokhttp3/internal/http2/Header;
invoke-direct {v2, p1, v0}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public final readLiteralHeaderWithoutIndexingNewName()V
.locals 4
.line 243
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v0
invoke-static {v0}, Lokhttp3/internal/http2/Hpack;->checkLowercase(Lokio/ByteString;)Lokio/ByteString;
move-result-object v0
.line 244
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;
move-result-object v1
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Reader;->headerList:Ljava/util/List;
.line 245
new-instance v3, Lokhttp3/internal/http2/Header;
invoke-direct {v3, v0, v1}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V
invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method

View File

@@ -0,0 +1,791 @@
.class public final Lokhttp3/internal/http2/Hpack$Writer;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Hpack;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Writer"
.end annotation
# instance fields
.field public dynamicTable:[Lokhttp3/internal/http2/Header;
.field public dynamicTableByteCount:I
.field public emitDynamicTableSizeUpdate:Z
.field public headerCount:I
.field public headerTableSizeSetting:I
.field public maxDynamicTableByteCount:I
.field public nextHeaderIndex:I
.field public final out:Lokio/Buffer;
.field public smallestHeaderTableSizeSetting:I
.field public final useCompression:Z
# direct methods
.method public constructor <init>(IZLokio/Buffer;)V
.locals 1
.line 400
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const v0, 0x7fffffff
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->smallestHeaderTableSizeSetting:I
const/16 v0, 0x8
new-array v0, v0, [Lokhttp3/internal/http2/Header;
iput-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerTableSizeSetting:I
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
iput-boolean p2, p0, Lokhttp3/internal/http2/Hpack$Writer;->useCompression:Z
iput-object p3, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
return-void
.end method
.method public constructor <init>(Lokio/Buffer;)V
.locals 2
const/16 v0, 0x1000
const/4 v1, 0x1
.line 397
invoke-direct {p0, v0, v1, p1}, Lokhttp3/internal/http2/Hpack$Writer;-><init>(IZLokio/Buffer;)V
return-void
.end method
# virtual methods
.method public final adjustDynamicTableByteCount()V
.locals 2
iget v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
iget v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
if-ge v0, v1, :cond_1
if-nez v0, :cond_0
.line 583
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Writer;->clearDynamicTable()V
goto :goto_0
:cond_0
sub-int/2addr v1, v0
.line 585
invoke-virtual {p0, v1}, Lokhttp3/internal/http2/Hpack$Writer;->evictToRecoverBytes(I)I
:cond_1
:goto_0
return-void
.end method
.method public final clearDynamicTable()V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
const/4 v1, 0x0
.line 408
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 409
array-length v0, v0
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
return-void
.end method
.method public final evictToRecoverBytes(I)I
.locals 4
const/4 v0, 0x0
if-lez p1, :cond_1
iget-object v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 419
array-length v1, v1
add-int/lit8 v1, v1, -0x1
:goto_0
iget v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
if-lt v1, v2, :cond_0
if-lez p1, :cond_0
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 420
aget-object v2, v2, v1
iget v2, v2, Lokhttp3/internal/http2/Header;->hpackSize:I
sub-int/2addr p1, v2
iget v3, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
sub-int/2addr v3, v2
iput v3, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
iget v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
add-int/lit8 v2, v2, -0x1
iput v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
add-int/lit8 v0, v0, 0x1
add-int/lit8 v1, v1, -0x1
goto :goto_0
:cond_0
iget-object p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
add-int/lit8 v1, v2, 0x1
add-int/lit8 v2, v2, 0x1
add-int/2addr v2, v0
iget v3, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
.line 425
invoke-static {p1, v1, p1, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget-object p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
iget v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
add-int/lit8 v2, v1, 0x1
add-int/lit8 v1, v1, 0x1
add-int/2addr v1, v0
const/4 v3, 0x0
.line 427
invoke-static {p1, v2, v1, v3}, Ljava/util/Arrays;->fill([Ljava/lang/Object;IILjava/lang/Object;)V
iget p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
add-int/2addr p1, v0
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
:cond_1
return v0
.end method
.method public final insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V
.locals 6
.line 434
iget v0, p1, Lokhttp3/internal/http2/Header;->hpackSize:I
iget v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
if-le v0, v1, :cond_0
.line 438
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Writer;->clearDynamicTable()V
return-void
:cond_0
iget v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
add-int/2addr v2, v0
sub-int/2addr v2, v1
.line 444
invoke-virtual {p0, v2}, Lokhttp3/internal/http2/Hpack$Writer;->evictToRecoverBytes(I)I
iget v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
add-int/lit8 v1, v1, 0x1
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 446
array-length v3, v2
if-le v1, v3, :cond_1
.line 447
array-length v1, v2
mul-int/lit8 v1, v1, 0x2
new-array v1, v1, [Lokhttp3/internal/http2/Header;
.line 448
array-length v3, v2
array-length v4, v2
const/4 v5, 0x0
invoke-static {v2, v5, v1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 449
array-length v2, v2
add-int/lit8 v2, v2, -0x1
iput v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
iput-object v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
:cond_1
iget v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
add-int/lit8 v2, v1, -0x1
iput v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
iget-object v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 453
aput-object p1, v2, v1
iget p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerCount:I
iget p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
add-int/2addr p1, v0
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTableByteCount:I
return-void
.end method
.method public setHeaderTableSizeSetting(I)V
.locals 1
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->headerTableSizeSetting:I
const/16 v0, 0x4000
.line 566
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
iget v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
if-ne v0, p1, :cond_0
return-void
:cond_0
if-ge p1, v0, :cond_1
iget v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->smallestHeaderTableSizeSetting:I
.line 572
invoke-static {v0, p1}, Ljava/lang/Math;->min(II)I
move-result v0
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->smallestHeaderTableSizeSetting:I
:cond_1
const/4 v0, 0x1
iput-boolean v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->emitDynamicTableSizeUpdate:Z
iput p1, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
.line 577
invoke-virtual {p0}, Lokhttp3/internal/http2/Hpack$Writer;->adjustDynamicTableByteCount()V
return-void
.end method
.method public writeByteString(Lokio/ByteString;)V
.locals 3
iget-boolean v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->useCompression:Z
const/16 v1, 0x7f
if-eqz v0, :cond_0
.line 552
invoke-static {}, Lokhttp3/internal/http2/Huffman;->get()Lokhttp3/internal/http2/Huffman;
move-result-object v0
invoke-virtual {v0, p1}, Lokhttp3/internal/http2/Huffman;->encodedLength(Lokio/ByteString;)I
move-result v0
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result v2
if-ge v0, v2, :cond_0
.line 553
new-instance v0, Lokio/Buffer;
invoke-direct {v0}, Lokio/Buffer;-><init>()V
.line 554
invoke-static {}, Lokhttp3/internal/http2/Huffman;->get()Lokhttp3/internal/http2/Huffman;
move-result-object v2
invoke-virtual {v2, p1, v0}, Lokhttp3/internal/http2/Huffman;->encode(Lokio/ByteString;Lokio/BufferedSink;)V
.line 555
invoke-virtual {v0}, Lokio/Buffer;->readByteString()Lokio/ByteString;
move-result-object p1
.line 556
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result v0
const/16 v2, 0x80
invoke-virtual {p0, v0, v1, v2}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
.line 557
invoke-virtual {v0, p1}, Lokio/Buffer;->write(Lokio/ByteString;)Lokio/Buffer;
goto :goto_0
.line 559
:cond_0
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result v0
const/4 v2, 0x0
invoke-virtual {p0, v0, v1, v2}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
.line 560
invoke-virtual {v0, p1}, Lokio/Buffer;->write(Lokio/ByteString;)Lokio/Buffer;
:goto_0
return-void
.end method
.method public writeHeaders(Ljava/util/List;)V
.locals 13
iget-boolean v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->emitDynamicTableSizeUpdate:Z
const/4 v1, 0x0
if-eqz v0, :cond_1
iget v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->smallestHeaderTableSizeSetting:I
iget v2, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
const/16 v3, 0x20
const/16 v4, 0x1f
if-ge v0, v2, :cond_0
.line 464
invoke-virtual {p0, v0, v4, v3}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
:cond_0
iput-boolean v1, p0, Lokhttp3/internal/http2/Hpack$Writer;->emitDynamicTableSizeUpdate:Z
const v0, 0x7fffffff
iput v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->smallestHeaderTableSizeSetting:I
iget v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->maxDynamicTableByteCount:I
.line 468
invoke-virtual {p0, v0, v4, v3}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
.line 471
:cond_1
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
move v2, v1
:goto_0
if-ge v2, v0, :cond_b
.line 472
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lokhttp3/internal/http2/Header;
.line 473
iget-object v4, v3, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
invoke-virtual {v4}, Lokio/ByteString;->toAsciiLowercase()Lokio/ByteString;
move-result-object v4
.line 474
iget-object v5, v3, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
.line 478
sget-object v6, Lokhttp3/internal/http2/Hpack;->NAME_TO_FIRST_INDEX:Ljava/util/Map;
invoke-interface {v6, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/Integer;
const/4 v7, 0x1
const/4 v8, -0x1
if-eqz v6, :cond_4
.line 480
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
add-int/lit8 v9, v6, 0x1
if-le v9, v7, :cond_3
const/16 v10, 0x8
if-ge v9, v10, :cond_3
.line 486
sget-object v10, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
aget-object v11, v10, v6
iget-object v11, v11, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
invoke-static {v11, v5}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_2
move v6, v9
goto :goto_1
.line 488
:cond_2
aget-object v10, v10, v9
iget-object v10, v10, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
invoke-static {v10, v5}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_3
add-int/lit8 v6, v6, 0x2
move v12, v9
move v9, v6
move v6, v12
goto :goto_1
:cond_3
move v6, v9
move v9, v8
goto :goto_1
:cond_4
move v6, v8
move v9, v6
:goto_1
if-ne v9, v8, :cond_7
iget v10, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
add-int/2addr v10, v7
iget-object v7, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 495
array-length v7, v7
:goto_2
if-ge v10, v7, :cond_7
iget-object v11, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 496
aget-object v11, v11, v10
iget-object v11, v11, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
invoke-static {v11, v4}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_6
iget-object v11, p0, Lokhttp3/internal/http2/Hpack$Writer;->dynamicTable:[Lokhttp3/internal/http2/Header;
.line 497
aget-object v11, v11, v10
iget-object v11, v11, Lokhttp3/internal/http2/Header;->value:Lokio/ByteString;
invoke-static {v11, v5}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_5
iget v7, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
sub-int/2addr v10, v7
.line 498
sget-object v7, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v7, v7
add-int v9, v10, v7
goto :goto_3
:cond_5
if-ne v6, v8, :cond_6
iget v6, p0, Lokhttp3/internal/http2/Hpack$Writer;->nextHeaderIndex:I
sub-int v6, v10, v6
.line 501
sget-object v11, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v11, v11
add-int/2addr v6, v11
:cond_6
add-int/lit8 v10, v10, 0x1
goto :goto_2
:cond_7
:goto_3
if-eq v9, v8, :cond_8
const/16 v3, 0x7f
const/16 v4, 0x80
.line 509
invoke-virtual {p0, v9, v3, v4}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
goto :goto_4
:cond_8
const/16 v7, 0x40
if-ne v6, v8, :cond_9
iget-object v6, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
.line 512
invoke-virtual {v6, v7}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
.line 513
invoke-virtual {p0, v4}, Lokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V
.line 514
invoke-virtual {p0, v5}, Lokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V
.line 515
invoke-virtual {p0, v3}, Lokhttp3/internal/http2/Hpack$Writer;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V
goto :goto_4
.line 516
:cond_9
sget-object v8, Lokhttp3/internal/http2/Header;->PSEUDO_PREFIX:Lokio/ByteString;
invoke-virtual {v4, v8}, Lokio/ByteString;->startsWith(Lokio/ByteString;)Z
move-result v8
if-eqz v8, :cond_a
sget-object v8, Lokhttp3/internal/http2/Header;->TARGET_AUTHORITY:Lokio/ByteString;
invoke-virtual {v8, v4}, Lokio/ByteString;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_a
const/16 v3, 0xf
.line 519
invoke-virtual {p0, v6, v3, v1}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
.line 520
invoke-virtual {p0, v5}, Lokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V
goto :goto_4
:cond_a
const/16 v4, 0x3f
.line 523
invoke-virtual {p0, v6, v4, v7}, Lokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V
.line 524
invoke-virtual {p0, v5}, Lokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V
.line 525
invoke-virtual {p0, v3}, Lokhttp3/internal/http2/Hpack$Writer;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V
:goto_4
add-int/lit8 v2, v2, 0x1
goto/16 :goto_0
:cond_b
return-void
.end method
.method public writeInt(III)V
.locals 1
if-ge p1, p2, :cond_0
iget-object p2, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
or-int/2addr p1, p3
.line 534
invoke-virtual {p2, p1}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
return-void
:cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
or-int/2addr p3, p2
.line 539
invoke-virtual {v0, p3}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
sub-int/2addr p1, p2
:goto_0
const/16 p2, 0x80
if-lt p1, p2, :cond_1
and-int/lit8 p3, p1, 0x7f
iget-object v0, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
or-int/2addr p2, p3
.line 545
invoke-virtual {v0, p2}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
ushr-int/lit8 p1, p1, 0x7
goto :goto_0
:cond_1
iget-object p2, p0, Lokhttp3/internal/http2/Hpack$Writer;->out:Lokio/Buffer;
.line 548
invoke-virtual {p2, p1}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
return-void
.end method

View File

@@ -0,0 +1,680 @@
.class public abstract Lokhttp3/internal/http2/Hpack;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lokhttp3/internal/http2/Hpack$Writer;,
Lokhttp3/internal/http2/Hpack$Reader;
}
.end annotation
# static fields
.field public static final NAME_TO_FIRST_INDEX:Ljava/util/Map;
.field public static final STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
# direct methods
.method static constructor <clinit>()V
.locals 65
.line 47
new-instance v1, Lokhttp3/internal/http2/Header;
move-object v0, v1
sget-object v2, Lokhttp3/internal/http2/Header;->TARGET_AUTHORITY:Lokio/ByteString;
const-string v15, ""
invoke-direct {v1, v2, v15}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v2, Lokhttp3/internal/http2/Header;
move-object v1, v2
sget-object v3, Lokhttp3/internal/http2/Header;->TARGET_METHOD:Lokio/ByteString;
const-string v4, "GET"
invoke-direct {v2, v3, v4}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v4, Lokhttp3/internal/http2/Header;
move-object v2, v4
const-string v5, "POST"
invoke-direct {v4, v3, v5}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v4, Lokhttp3/internal/http2/Header;
move-object v3, v4
sget-object v5, Lokhttp3/internal/http2/Header;->TARGET_PATH:Lokio/ByteString;
const-string v6, "/"
invoke-direct {v4, v5, v6}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v6, Lokhttp3/internal/http2/Header;
move-object v4, v6
const-string v7, "/index.html"
invoke-direct {v6, v5, v7}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v6, Lokhttp3/internal/http2/Header;
move-object v5, v6
sget-object v7, Lokhttp3/internal/http2/Header;->TARGET_SCHEME:Lokio/ByteString;
const-string v8, "http"
invoke-direct {v6, v7, v8}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v8, Lokhttp3/internal/http2/Header;
move-object v6, v8
const-string v9, "https"
invoke-direct {v8, v7, v9}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v8, Lokhttp3/internal/http2/Header;
move-object v7, v8
sget-object v14, Lokhttp3/internal/http2/Header;->RESPONSE_STATUS:Lokio/ByteString;
const-string v9, "200"
invoke-direct {v8, v14, v9}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v9, Lokhttp3/internal/http2/Header;
move-object v8, v9
const-string v10, "204"
invoke-direct {v9, v14, v10}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v10, Lokhttp3/internal/http2/Header;
move-object v9, v10
const-string v11, "206"
invoke-direct {v10, v14, v11}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v11, Lokhttp3/internal/http2/Header;
move-object v10, v11
const-string v12, "304"
invoke-direct {v11, v14, v12}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v12, Lokhttp3/internal/http2/Header;
move-object v11, v12
const-string v13, "400"
invoke-direct {v12, v14, v13}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v13, Lokhttp3/internal/http2/Header;
move-object v12, v13
move-object/from16 v61, v0
const-string v0, "404"
invoke-direct {v13, v14, v0}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object v13, v0
move-object/from16 v62, v1
const-string v1, "500"
invoke-direct {v0, v14, v1}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object v14, v0
const-string v1, "accept-charset"
invoke-direct {v0, v1, v15}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object v1, v15
move-object v15, v0
move-object/from16 v63, v2
const-string v2, "accept-encoding"
move-object/from16 v64, v3
const-string v3, "gzip, deflate"
invoke-direct {v0, v2, v3}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v16, v0
const-string v2, "accept-language"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v17, v0
const-string v2, "accept-ranges"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v18, v0
const-string v2, "accept"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v19, v0
const-string v2, "access-control-allow-origin"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v20, v0
const-string v2, "age"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v21, v0
const-string v2, "allow"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v22, v0
const-string v2, "authorization"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v23, v0
const-string v2, "cache-control"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v24, v0
const-string v2, "content-disposition"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v25, v0
const-string v2, "content-encoding"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v26, v0
const-string v2, "content-language"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v27, v0
const-string v2, "content-length"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v28, v0
const-string v2, "content-location"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v29, v0
const-string v2, "content-range"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v30, v0
const-string v2, "content-type"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v31, v0
const-string v2, "cookie"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v32, v0
const-string v2, "date"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v33, v0
const-string v2, "etag"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v34, v0
const-string v2, "expect"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v35, v0
const-string v2, "expires"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v36, v0
const-string v2, "from"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v37, v0
const-string v2, "host"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v38, v0
const-string v2, "if-match"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v39, v0
const-string v2, "if-modified-since"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v40, v0
const-string v2, "if-none-match"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v41, v0
const-string v2, "if-range"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v42, v0
const-string v2, "if-unmodified-since"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v43, v0
const-string v2, "last-modified"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v44, v0
const-string v2, "link"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v45, v0
const-string v2, "location"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v46, v0
const-string v2, "max-forwards"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v47, v0
const-string v2, "proxy-authenticate"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v48, v0
const-string v2, "proxy-authorization"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v49, v0
const-string v2, "range"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v50, v0
const-string v2, "referer"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v51, v0
const-string v2, "refresh"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v52, v0
const-string v2, "retry-after"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v53, v0
const-string v2, "server"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v54, v0
const-string v2, "set-cookie"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v55, v0
const-string v2, "strict-transport-security"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v56, v0
const-string v2, "transfer-encoding"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v57, v0
const-string v2, "user-agent"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v58, v0
const-string v2, "vary"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v59, v0
const-string v2, "via"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Lokhttp3/internal/http2/Header;
move-object/from16 v60, v0
const-string v2, "www-authenticate"
invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
move-object/from16 v0, v61
move-object/from16 v1, v62
move-object/from16 v2, v63
move-object/from16 v3, v64
filled-new-array/range {v0 .. v60}, [Lokhttp3/internal/http2/Header;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
.line 354
invoke-static {}, Lokhttp3/internal/http2/Hpack;->nameToFirstIndex()Ljava/util/Map;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Hpack;->NAME_TO_FIRST_INDEX:Ljava/util/Map;
return-void
.end method
.method public static checkLowercase(Lokio/ByteString;)Lokio/ByteString;
.locals 4
.line 596
invoke-virtual {p0}, Lokio/ByteString;->size()I
move-result v0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_2
.line 597
invoke-virtual {p0, v1}, Lokio/ByteString;->getByte(I)B
move-result v2
const/16 v3, 0x41
if-lt v2, v3, :cond_1
const/16 v3, 0x5a
if-le v2, v3, :cond_0
goto :goto_1
.line 599
:cond_0
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "PROTOCOL_ERROR response malformed: mixed case name: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lokio/ByteString;->utf8()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1
:goto_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_2
return-object p0
.end method
.method public static nameToFirstIndex()Ljava/util/Map;
.locals 4
.line 357
new-instance v0, Ljava/util/LinkedHashMap;
sget-object v1, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
array-length v1, v1
invoke-direct {v0, v1}, Ljava/util/LinkedHashMap;-><init>(I)V
const/4 v1, 0x0
:goto_0
sget-object v2, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
.line 358
array-length v3, v2
if-ge v1, v3, :cond_1
.line 359
aget-object v3, v2, v1
iget-object v3, v3, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
invoke-interface {v0, v3}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_0
.line 360
aget-object v2, v2, v1
iget-object v2, v2, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString;
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 363
:cond_1
invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,512 @@
.class public abstract Lokhttp3/internal/http2/Http2;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final BINARY:[Ljava/lang/String;
.field public static final CONNECTION_PREFACE:Lokio/ByteString;
.field public static final FLAGS:[Ljava/lang/String;
.field public static final FRAME_NAMES:[Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.locals 13
const-string v0, "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
.line 25
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Http2;->CONNECTION_PREFACE:Lokio/ByteString;
const-string v1, "DATA"
const-string v2, "HEADERS"
const-string v3, "PRIORITY"
const-string v4, "RST_STREAM"
const-string v5, "SETTINGS"
const-string v6, "PUSH_PROMISE"
const-string v7, "PING"
const-string v8, "GOAWAY"
const-string v9, "WINDOW_UPDATE"
const-string v10, "CONTINUATION"
filled-new-array/range {v1 .. v10}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Http2;->FRAME_NAMES:[Ljava/lang/String;
const/16 v0, 0x40
new-array v0, v0, [Ljava/lang/String;
sput-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const/16 v0, 0x100
new-array v0, v0, [Ljava/lang/String;
sput-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
const/4 v0, 0x0
move v1, v0
:goto_0
sget-object v2, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
.line 71
array-length v3, v2
const/16 v4, 0x20
if-ge v1, v3, :cond_0
.line 72
invoke-static {v1}, Ljava/lang/Integer;->toBinaryString(I)Ljava/lang/String;
move-result-object v3
filled-new-array {v3}, [Ljava/lang/Object;
move-result-object v3
const-string v5, "%8s"
invoke-static {v5, v3}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
const/16 v5, 0x30
invoke-virtual {v3, v4, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
sget-object v1, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const-string v2, ""
.line 75
aput-object v2, v1, v0
const-string v2, "END_STREAM"
const/4 v3, 0x1
.line 76
aput-object v2, v1, v3
filled-new-array {v3}, [I
move-result-object v2
const-string v3, "PADDED"
const/16 v5, 0x8
.line 80
aput-object v3, v1, v5
.line 81
aget v3, v2, v0
or-int/lit8 v6, v3, 0x8
.line 82
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
aget-object v3, v1, v3
invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "|PADDED"
invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
aput-object v7, v1, v6
const-string v6, "END_HEADERS"
const/4 v7, 0x4
.line 85
aput-object v6, v1, v7
const-string v6, "PRIORITY"
.line 86
aput-object v6, v1, v4
const-string v6, "END_HEADERS|PRIORITY"
const/16 v8, 0x24
.line 87
aput-object v6, v1, v8
filled-new-array {v7, v4, v8}, [I
move-result-object v1
move v4, v0
:goto_1
const/4 v6, 0x3
if-ge v4, v6, :cond_1
.line 92
aget v6, v1, v4
.line 93
aget v7, v2, v0
sget-object v8, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
or-int v9, v7, v6
.line 94
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
aget-object v11, v8, v7
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v11, 0x7c
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
aget-object v12, v8, v6
invoke-virtual {v10, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
aput-object v10, v8, v9
or-int/2addr v9, v5
.line 95
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
aget-object v7, v8, v7
invoke-virtual {v10, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
aget-object v6, v8, v6
invoke-virtual {v10, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
aput-object v6, v8, v9
add-int/lit8 v4, v4, 0x1
goto :goto_1
:cond_1
:goto_2
sget-object v1, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
.line 100
array-length v2, v1
if-ge v0, v2, :cond_3
.line 101
aget-object v2, v1, v0
if-nez v2, :cond_2
sget-object v2, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v2, v2, v0
aput-object v2, v1, v0
:cond_2
add-int/lit8 v0, v0, 0x1
goto :goto_2
:cond_3
return-void
.end method
.method public static formatFlags(BB)Ljava/lang/String;
.locals 2
if-nez p1, :cond_0
const-string p0, ""
return-object p0
:cond_0
const/4 v0, 0x2
if-eq p0, v0, :cond_6
const/4 v0, 0x3
if-eq p0, v0, :cond_6
const/4 v0, 0x4
if-eq p0, v0, :cond_4
const/4 v0, 0x6
if-eq p0, v0, :cond_4
const/4 v0, 0x7
if-eq p0, v0, :cond_6
const/16 v0, 0x8
if-eq p0, v0, :cond_6
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
.line 158
array-length v1, v0
if-ge p1, v1, :cond_1
aget-object v0, v0, p1
goto :goto_0
:cond_1
sget-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v0, v0, p1
:goto_0
const/4 v1, 0x5
if-ne p0, v1, :cond_2
and-int/lit8 v1, p1, 0x4
if-eqz v1, :cond_2
const-string p0, "HEADERS"
const-string p1, "PUSH_PROMISE"
.line 161
invoke-virtual {v0, p0, p1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_2
if-nez p0, :cond_3
and-int/lit8 p0, p1, 0x20
if-eqz p0, :cond_3
const-string p0, "PRIORITY"
const-string p1, "COMPRESSED"
.line 163
invoke-virtual {v0, p0, p1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_3
return-object v0
:cond_4
const/4 p0, 0x1
if-ne p1, p0, :cond_5
const-string p0, "ACK"
goto :goto_1
:cond_5
sget-object p0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
.line 151
aget-object p0, p0, p1
:goto_1
return-object p0
:cond_6
sget-object p0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
.line 156
aget-object p0, p0, p1
return-object p0
.end method
.method public static frameLog(ZIIBB)Ljava/lang/String;
.locals 2
sget-object v0, Lokhttp3/internal/http2/Http2;->FRAME_NAMES:[Ljava/lang/String;
.line 135
array-length v1, v0
if-ge p3, v1, :cond_0
aget-object v0, v0, p3
goto :goto_0
:cond_0
invoke-static {p3}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
filled-new-array {v0}, [Ljava/lang/Object;
move-result-object v0
const-string v1, "0x%02x"
invoke-static {v1, v0}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 136
:goto_0
invoke-static {p3, p4}, Lokhttp3/internal/http2/Http2;->formatFlags(BB)Ljava/lang/String;
move-result-object p3
const/4 p4, 0x5
new-array p4, p4, [Ljava/lang/Object;
if-eqz p0, :cond_1
const-string p0, "<<"
goto :goto_1
:cond_1
const-string p0, ">>"
:goto_1
const/4 v1, 0x0
aput-object p0, p4, v1
const/4 p0, 0x1
.line 137
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, p4, p0
const/4 p0, 0x2
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, p4, p0
const/4 p0, 0x3
aput-object v0, p4, p0
const/4 p0, 0x4
aput-object p3, p4, p0
const-string p0, "%s 0x%08x %5d %-13s %s"
invoke-static {p0, p4}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static varargs illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
.locals 1
.line 109
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p0, p1}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static varargs ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
.locals 1
.line 113
new-instance v0, Ljava/io/IOException;
invoke-static {p0, p1}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method

View File

@@ -0,0 +1,70 @@
.class public Lokhttp3/internal/http2/Http2Connection$1;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->writeSynResetLater(ILokhttp3/internal/http2/ErrorCode;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$errorCode:Lokhttp3/internal/http2/ErrorCode;
.field public final synthetic val$streamId:I
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$1;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$1;->val$streamId:I
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$1;->val$errorCode:Lokhttp3/internal/http2/ErrorCode;
.line 334
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 3
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$1;->this$0:Lokhttp3/internal/http2/Http2Connection;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$1;->val$streamId:I
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$1;->val$errorCode:Lokhttp3/internal/http2/ErrorCode;
.line 337
invoke-virtual {v0, v1, v2}, Lokhttp3/internal/http2/Http2Connection;->writeSynReset(ILokhttp3/internal/http2/ErrorCode;)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$1;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 339
invoke-static {v1, v0}, Lokhttp3/internal/http2/Http2Connection;->access$000(Lokhttp3/internal/http2/Http2Connection;Ljava/io/IOException;)V
:goto_0
return-void
.end method

View File

@@ -0,0 +1,72 @@
.class public Lokhttp3/internal/http2/Http2Connection$2;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->writeWindowUpdateLater(IJ)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$streamId:I
.field public final synthetic val$unacknowledgedBytesRead:J
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;IJ)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$2;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$2;->val$streamId:I
iput-wide p5, p0, Lokhttp3/internal/http2/Http2Connection$2;->val$unacknowledgedBytesRead:J
.line 355
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 4
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$2;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 358
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->writer:Lokhttp3/internal/http2/Http2Writer;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$2;->val$streamId:I
iget-wide v2, p0, Lokhttp3/internal/http2/Http2Connection$2;->val$unacknowledgedBytesRead:J
invoke-virtual {v0, v1, v2, v3}, Lokhttp3/internal/http2/Http2Writer;->windowUpdate(IJ)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$2;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 360
invoke-static {v1, v0}, Lokhttp3/internal/http2/Http2Connection;->access$000(Lokhttp3/internal/http2/Http2Connection;Ljava/io/IOException;)V
:goto_0
return-void
.end method

View File

@@ -0,0 +1,48 @@
.class public Lokhttp3/internal/http2/Http2Connection$3;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->sendDegradedPingLater()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$3;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 584
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$3;->this$0:Lokhttp3/internal/http2/Http2Connection;
const/4 v1, 0x0
const/4 v2, 0x2
.line 586
invoke-virtual {v0, v1, v2, v1}, Lokhttp3/internal/http2/Http2Connection;->writePing(ZII)V
return-void
.end method

View File

@@ -0,0 +1,115 @@
.class public Lokhttp3/internal/http2/Http2Connection$4;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->pushRequestLater(ILjava/util/List;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$requestHeaders:Ljava/util/List;
.field public final synthetic val$streamId:I
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILjava/util/List;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$4;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$streamId:I
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$requestHeaders:Ljava/util/List;
.line 905
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$4;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 907
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->pushObserver:Lokhttp3/internal/http2/PushObserver;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$streamId:I
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$requestHeaders:Ljava/util/List;
invoke-interface {v0, v1, v2}, Lokhttp3/internal/http2/PushObserver;->onRequest(ILjava/util/List;)Z
move-result v0
if-eqz v0, :cond_0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$4;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 910
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->writer:Lokhttp3/internal/http2/Http2Writer;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$streamId:I
sget-object v2, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v0, v1, v2}, Lokhttp3/internal/http2/Http2Writer;->rstStream(ILokhttp3/internal/http2/ErrorCode;)V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$4;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 911
monitor-enter v0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
:try_start_1
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$4;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 912
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->currentPushRequests:Ljava/util/Set;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$4;->val$streamId:I
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 913
monitor-exit v0
goto :goto_0
:catchall_0
move-exception v1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:try_start_2
throw v1
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
:catch_0
:cond_0
:goto_0
return-void
.end method

View File

@@ -0,0 +1,129 @@
.class public Lokhttp3/internal/http2/Http2Connection$5;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->pushHeadersLater(ILjava/util/List;Z)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$inFinished:Z
.field public final synthetic val$requestHeaders:Ljava/util/List;
.field public final synthetic val$streamId:I
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILjava/util/List;Z)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$5;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$streamId:I
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$requestHeaders:Ljava/util/List;
iput-boolean p6, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$inFinished:Z
.line 928
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 4
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$5;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 930
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->pushObserver:Lokhttp3/internal/http2/PushObserver;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$streamId:I
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$requestHeaders:Ljava/util/List;
iget-boolean v3, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$inFinished:Z
invoke-interface {v0, v1, v2, v3}, Lokhttp3/internal/http2/PushObserver;->onHeaders(ILjava/util/List;Z)Z
move-result v0
if-eqz v0, :cond_0
:try_start_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$5;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 932
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->writer:Lokhttp3/internal/http2/Http2Writer;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$streamId:I
sget-object v3, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v1, v2, v3}, Lokhttp3/internal/http2/Http2Writer;->rstStream(ILokhttp3/internal/http2/ErrorCode;)V
:cond_0
if-nez v0, :cond_1
iget-boolean v0, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$inFinished:Z
if-eqz v0, :cond_2
:cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$5;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 934
monitor-enter v0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
:try_start_1
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$5;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 935
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->currentPushRequests:Ljava/util/Set;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$5;->val$streamId:I
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 936
monitor-exit v0
goto :goto_0
:catchall_0
move-exception v1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:try_start_2
throw v1
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
:catch_0
:cond_2
:goto_0
return-void
.end method

View File

@@ -0,0 +1,135 @@
.class public Lokhttp3/internal/http2/Http2Connection$6;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->pushDataLater(ILokio/BufferedSource;IZ)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$buffer:Lokio/Buffer;
.field public final synthetic val$byteCount:I
.field public final synthetic val$inFinished:Z
.field public final synthetic val$streamId:I
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokio/Buffer;IZ)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$6;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$streamId:I
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$buffer:Lokio/Buffer;
iput p6, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$byteCount:I
iput-boolean p7, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$inFinished:Z
.line 957
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 5
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$6;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 960
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->pushObserver:Lokhttp3/internal/http2/PushObserver;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$streamId:I
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$buffer:Lokio/Buffer;
iget v3, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$byteCount:I
iget-boolean v4, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$inFinished:Z
invoke-interface {v0, v1, v2, v3, v4}, Lokhttp3/internal/http2/PushObserver;->onData(ILokio/BufferedSource;IZ)Z
move-result v0
if-eqz v0, :cond_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$6;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 961
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->writer:Lokhttp3/internal/http2/Http2Writer;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$streamId:I
sget-object v3, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v1, v2, v3}, Lokhttp3/internal/http2/Http2Writer;->rstStream(ILokhttp3/internal/http2/ErrorCode;)V
:cond_0
if-nez v0, :cond_1
iget-boolean v0, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$inFinished:Z
if-eqz v0, :cond_2
:cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$6;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 963
monitor-enter v0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
:try_start_1
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$6;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 964
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->currentPushRequests:Ljava/util/Set;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$6;->val$streamId:I
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 965
monitor-exit v0
goto :goto_0
:catchall_0
move-exception v1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:try_start_2
throw v1
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
:catch_0
:cond_2
:goto_0
return-void
.end method

View File

@@ -0,0 +1,89 @@
.class public Lokhttp3/internal/http2/Http2Connection$7;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection;->pushResetLater(ILokhttp3/internal/http2/ErrorCode;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
.field public final synthetic val$errorCode:Lokhttp3/internal/http2/ErrorCode;
.field public final synthetic val$streamId:I
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$7;->this$0:Lokhttp3/internal/http2/Http2Connection;
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$7;->val$streamId:I
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$7;->val$errorCode:Lokhttp3/internal/http2/ErrorCode;
.line 974
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$7;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 976
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->pushObserver:Lokhttp3/internal/http2/PushObserver;
iget v1, p0, Lokhttp3/internal/http2/Http2Connection$7;->val$streamId:I
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$7;->val$errorCode:Lokhttp3/internal/http2/ErrorCode;
invoke-interface {v0, v1, v2}, Lokhttp3/internal/http2/PushObserver;->onReset(ILokhttp3/internal/http2/ErrorCode;)V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$7;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 977
monitor-enter v0
:try_start_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$7;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 978
iget-object v1, v1, Lokhttp3/internal/http2/Http2Connection;->currentPushRequests:Ljava/util/Set;
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$7;->val$streamId:I
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 979
monitor-exit v0
return-void
:catchall_0
move-exception v1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method

View File

@@ -0,0 +1,98 @@
.class public Lokhttp3/internal/http2/Http2Connection$Builder;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Connection;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Builder"
.end annotation
# instance fields
.field public client:Z
.field public connectionName:Ljava/lang/String;
.field public listener:Lokhttp3/internal/http2/Http2Connection$Listener;
.field public pingIntervalMillis:I
.field public pushObserver:Lokhttp3/internal/http2/PushObserver;
.field public sink:Lokio/BufferedSink;
.field public socket:Ljava/net/Socket;
.field public source:Lokio/BufferedSource;
# direct methods
.method public constructor <init>(Z)V
.locals 1
.line 608
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 599
sget-object v0, Lokhttp3/internal/http2/Http2Connection$Listener;->REFUSE_INCOMING_STREAMS:Lokhttp3/internal/http2/Http2Connection$Listener;
iput-object v0, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->listener:Lokhttp3/internal/http2/Http2Connection$Listener;
.line 600
sget-object v0, Lokhttp3/internal/http2/PushObserver;->CANCEL:Lokhttp3/internal/http2/PushObserver;
iput-object v0, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->pushObserver:Lokhttp3/internal/http2/PushObserver;
iput-boolean p1, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->client:Z
return-void
.end method
# virtual methods
.method public build()Lokhttp3/internal/http2/Http2Connection;
.locals 1
.line 646
new-instance v0, Lokhttp3/internal/http2/Http2Connection;
invoke-direct {v0, p0}, Lokhttp3/internal/http2/Http2Connection;-><init>(Lokhttp3/internal/http2/Http2Connection$Builder;)V
return-object v0
.end method
.method public listener(Lokhttp3/internal/http2/Http2Connection$Listener;)Lokhttp3/internal/http2/Http2Connection$Builder;
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->listener:Lokhttp3/internal/http2/Http2Connection$Listener;
return-object p0
.end method
.method public pingIntervalMillis(I)Lokhttp3/internal/http2/Http2Connection$Builder;
.locals 0
iput p1, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->pingIntervalMillis:I
return-object p0
.end method
.method public socket(Ljava/net/Socket;Ljava/lang/String;Lokio/BufferedSource;Lokio/BufferedSink;)Lokhttp3/internal/http2/Http2Connection$Builder;
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->socket:Ljava/net/Socket;
iput-object p2, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->connectionName:Ljava/lang/String;
iput-object p3, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->source:Lokio/BufferedSource;
iput-object p4, p0, Lokhttp3/internal/http2/Http2Connection$Builder;->sink:Lokio/BufferedSink;
return-object p0
.end method

View File

@@ -0,0 +1,121 @@
.class public final Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Connection;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "IntervalPingRunnable"
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
# direct methods
.method public constructor <init>(Lokhttp3/internal/http2/Http2Connection;)V
.locals 1
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 388
iget-object p1, p1, Lokhttp3/internal/http2/Http2Connection;->connectionName:Ljava/lang/String;
filled-new-array {p1}, [Ljava/lang/Object;
move-result-object p1
const-string v0, "OkHttp %s ping"
invoke-direct {p0, v0, p1}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 5
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 393
monitor-enter v0
:try_start_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 394
invoke-static {v1}, Lokhttp3/internal/http2/Http2Connection;->access$100(Lokhttp3/internal/http2/Http2Connection;)J
move-result-wide v1
iget-object v3, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
invoke-static {v3}, Lokhttp3/internal/http2/Http2Connection;->access$200(Lokhttp3/internal/http2/Http2Connection;)J
move-result-wide v3
cmp-long v1, v1, v3
const/4 v2, 0x1
const/4 v3, 0x0
if-gez v1, :cond_0
move v1, v2
goto :goto_0
:cond_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 397
invoke-static {v1}, Lokhttp3/internal/http2/Http2Connection;->access$208(Lokhttp3/internal/http2/Http2Connection;)J
move v1, v3
.line 400
:goto_0
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v1, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
const/4 v1, 0x0
.line 402
invoke-static {v0, v1}, Lokhttp3/internal/http2/Http2Connection;->access$000(Lokhttp3/internal/http2/Http2Connection;Ljava/io/IOException;)V
goto :goto_1
:cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$IntervalPingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 404
invoke-virtual {v0, v3, v2, v3}, Lokhttp3/internal/http2/Http2Connection;->writePing(ZII)V
:goto_1
return-void
:catchall_0
move-exception v1
.line 400
:try_start_1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
.end method

View File

@@ -0,0 +1,40 @@
.class public Lokhttp3/internal/http2/Http2Connection$Listener$1;
.super Lokhttp3/internal/http2/Http2Connection$Listener;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Connection$Listener;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 992
invoke-direct {p0}, Lokhttp3/internal/http2/Http2Connection$Listener;-><init>()V
return-void
.end method
# virtual methods
.method public onStream(Lokhttp3/internal/http2/Http2Stream;)V
.locals 2
.line 994
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Lokhttp3/internal/http2/Http2Stream;->close(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)V
return-void
.end method

View File

@@ -0,0 +1,53 @@
.class public abstract Lokhttp3/internal/http2/Http2Connection$Listener;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Connection;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "Listener"
.end annotation
# static fields
.field public static final REFUSE_INCOMING_STREAMS:Lokhttp3/internal/http2/Http2Connection$Listener;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 992
new-instance v0, Lokhttp3/internal/http2/Http2Connection$Listener$1;
invoke-direct {v0}, Lokhttp3/internal/http2/Http2Connection$Listener$1;-><init>()V
sput-object v0, Lokhttp3/internal/http2/Http2Connection$Listener;->REFUSE_INCOMING_STREAMS:Lokhttp3/internal/http2/Http2Connection$Listener;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 991
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onSettings(Lokhttp3/internal/http2/Http2Connection;)V
.locals 0
return-void
.end method
.method public abstract onStream(Lokhttp3/internal/http2/Http2Stream;)V
.end method

View File

@@ -0,0 +1,78 @@
.class public final Lokhttp3/internal/http2/Http2Connection$PingRunnable;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Connection;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "PingRunnable"
.end annotation
# instance fields
.field public final payload1:I
.field public final payload2:I
.field public final reply:Z
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Connection;
# direct methods
.method public constructor <init>(Lokhttp3/internal/http2/Http2Connection;ZII)V
.locals 2
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
.line 375
iget-object p1, p1, Lokhttp3/internal/http2/Http2Connection;->connectionName:Ljava/lang/String;
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
filled-new-array {p1, v0, v1}, [Ljava/lang/Object;
move-result-object p1
const-string v0, "OkHttp %s ping %08x%08x"
invoke-direct {p0, v0, p1}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
iput-boolean p2, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->reply:Z
iput p3, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->payload1:I
iput p4, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->payload2:I
return-void
.end method
# virtual methods
.method public execute()V
.locals 4
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
iget-boolean v1, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->reply:Z
iget v2, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->payload1:I
iget v3, p0, Lokhttp3/internal/http2/Http2Connection$PingRunnable;->payload2:I
.line 382
invoke-virtual {v0, v1, v2, v3}, Lokhttp3/internal/http2/Http2Connection;->writePing(ZII)V
return-void
.end method

View File

@@ -0,0 +1,103 @@
.class public Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->headers(ZIILjava/util/List;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
.field public final synthetic val$newStream:Lokhttp3/internal/http2/Http2Stream;
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;Ljava/lang/String;[Ljava/lang/Object;Lokhttp3/internal/http2/Http2Stream;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
iput-object p4, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->val$newStream:Lokhttp3/internal/http2/Http2Stream;
.line 728
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 4
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
.line 731
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection;->listener:Lokhttp3/internal/http2/Http2Connection$Listener;
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->val$newStream:Lokhttp3/internal/http2/Http2Stream;
invoke-virtual {v0, v1}, Lokhttp3/internal/http2/Http2Connection$Listener;->onStream(Lokhttp3/internal/http2/Http2Stream;)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 733
invoke-static {}, Lokhttp3/internal/platform/Platform;->get()Lokhttp3/internal/platform/Platform;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Http2Connection.Listener failure for "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
iget-object v3, v3, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
iget-object v3, v3, Lokhttp3/internal/http2/Http2Connection;->connectionName:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const/4 v3, 0x4
invoke-virtual {v1, v3, v2, v0}, Lokhttp3/internal/platform/Platform;->log(ILjava/lang/String;Ljava/lang/Throwable;)V
:try_start_1
iget-object v1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$1;->val$newStream:Lokhttp3/internal/http2/Http2Stream;
.line 736
sget-object v2, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v1, v2, v0}, Lokhttp3/internal/http2/Http2Stream;->close(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)V
:try_end_1
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
:catch_1
:goto_0
return-void
.end method

View File

@@ -0,0 +1,56 @@
.class public Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->settings(ZLokhttp3/internal/http2/Settings;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
.field public final synthetic val$clearPrevious:Z
.field public final synthetic val$settings:Lokhttp3/internal/http2/Settings;
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;Ljava/lang/String;[Ljava/lang/Object;ZLokhttp3/internal/http2/Settings;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
iput-boolean p4, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->val$clearPrevious:Z
iput-object p5, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->val$settings:Lokhttp3/internal/http2/Settings;
.line 763
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
iget-boolean v1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->val$clearPrevious:Z
iget-object v2, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$2;->val$settings:Lokhttp3/internal/http2/Settings;
.line 765
invoke-virtual {v0, v1, v2}, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->applyAndAckSettings(ZLokhttp3/internal/http2/Settings;)V
return-void
.end method

View File

@@ -0,0 +1,48 @@
.class public Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$3;
.super Lokhttp3/internal/NamedRunnable;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->applyAndAckSettings(ZLokhttp3/internal/http2/Settings;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
# direct methods
.method public varargs constructor <init>(Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;Ljava/lang/String;[Ljava/lang/Object;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$3;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
.line 802
invoke-direct {p0, p2, p3}, Lokhttp3/internal/NamedRunnable;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public execute()V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable$3;->this$1:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
.line 804
iget-object v0, v0, Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;->this$0:Lokhttp3/internal/http2/Http2Connection;
iget-object v1, v0, Lokhttp3/internal/http2/Http2Connection;->listener:Lokhttp3/internal/http2/Http2Connection$Listener;
invoke-virtual {v1, v0}, Lokhttp3/internal/http2/Http2Connection$Listener;->onSettings(Lokhttp3/internal/http2/Http2Connection;)V
return-void
.end method

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,652 @@
.class public final Lokhttp3/internal/http2/Http2ExchangeCodec;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/internal/http/ExchangeCodec;
# static fields
.field public static final HTTP_2_SKIPPED_REQUEST_HEADERS:Ljava/util/List;
.field public static final HTTP_2_SKIPPED_RESPONSE_HEADERS:Ljava/util/List;
# instance fields
.field public volatile canceled:Z
.field public final chain:Lokhttp3/Interceptor$Chain;
.field public final connection:Lokhttp3/internal/http2/Http2Connection;
.field public final protocol:Lokhttp3/Protocol;
.field public final realConnection:Lokhttp3/internal/connection/RealConnection;
.field public volatile stream:Lokhttp3/internal/http2/Http2Stream;
# direct methods
.method static constructor <clinit>()V
.locals 12
const-string v0, "connection"
const-string v1, "host"
const-string v2, "keep-alive"
const-string v3, "proxy-connection"
const-string v4, "te"
const-string v5, "transfer-encoding"
const-string v6, "encoding"
const-string v7, "upgrade"
const-string v8, ":method"
const-string v9, ":path"
const-string v10, ":scheme"
const-string v11, ":authority"
filled-new-array/range {v0 .. v11}, [Ljava/lang/String;
move-result-object v0
.line 63
invoke-static {v0}, Lokhttp3/internal/Util;->immutableList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Http2ExchangeCodec;->HTTP_2_SKIPPED_REQUEST_HEADERS:Ljava/util/List;
const-string v1, "connection"
const-string v2, "host"
const-string v3, "keep-alive"
const-string v4, "proxy-connection"
const-string v5, "te"
const-string v6, "transfer-encoding"
const-string v7, "encoding"
const-string v8, "upgrade"
filled-new-array/range {v1 .. v8}, [Ljava/lang/String;
move-result-object v0
.line 76
invoke-static {v0}, Lokhttp3/internal/Util;->immutableList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Http2ExchangeCodec;->HTTP_2_SKIPPED_RESPONSE_HEADERS:Ljava/util/List;
return-void
.end method
.method public constructor <init>(Lokhttp3/OkHttpClient;Lokhttp3/internal/connection/RealConnection;Lokhttp3/Interceptor$Chain;Lokhttp3/internal/http2/Http2Connection;)V
.locals 0
.line 94
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->realConnection:Lokhttp3/internal/connection/RealConnection;
iput-object p3, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->chain:Lokhttp3/Interceptor$Chain;
iput-object p4, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->connection:Lokhttp3/internal/http2/Http2Connection;
.line 98
invoke-virtual {p1}, Lokhttp3/OkHttpClient;->protocols()Ljava/util/List;
move-result-object p1
sget-object p2, Lokhttp3/Protocol;->H2_PRIOR_KNOWLEDGE:Lokhttp3/Protocol;
invoke-interface {p1, p2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
.line 100
:cond_0
sget-object p2, Lokhttp3/Protocol;->HTTP_2:Lokhttp3/Protocol;
:goto_0
iput-object p2, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->protocol:Lokhttp3/Protocol;
return-void
.end method
.method public static http2HeadersList(Lokhttp3/Request;)Ljava/util/List;
.locals 6
.line 145
invoke-virtual {p0}, Lokhttp3/Request;->headers()Lokhttp3/Headers;
move-result-object v0
.line 146
new-instance v1, Ljava/util/ArrayList;
invoke-virtual {v0}, Lokhttp3/Headers;->size()I
move-result v2
add-int/lit8 v2, v2, 0x4
invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(I)V
.line 147
new-instance v2, Lokhttp3/internal/http2/Header;
sget-object v3, Lokhttp3/internal/http2/Header;->TARGET_METHOD:Lokio/ByteString;
invoke-virtual {p0}, Lokhttp3/Request;->method()Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v3, v4}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 148
new-instance v2, Lokhttp3/internal/http2/Header;
sget-object v3, Lokhttp3/internal/http2/Header;->TARGET_PATH:Lokio/ByteString;
invoke-virtual {p0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v4
invoke-static {v4}, Lokhttp3/internal/http/RequestLine;->requestPath(Lokhttp3/HttpUrl;)Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v3, v4}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v2, "Host"
.line 149
invoke-virtual {p0, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_0
.line 151
new-instance v3, Lokhttp3/internal/http2/Header;
sget-object v4, Lokhttp3/internal/http2/Header;->TARGET_AUTHORITY:Lokio/ByteString;
invoke-direct {v3, v4, v2}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 153
:cond_0
new-instance v2, Lokhttp3/internal/http2/Header;
sget-object v3, Lokhttp3/internal/http2/Header;->TARGET_SCHEME:Lokio/ByteString;
invoke-virtual {p0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object p0
invoke-virtual {p0}, Lokhttp3/HttpUrl;->scheme()Ljava/lang/String;
move-result-object p0
invoke-direct {v2, v3, p0}, Lokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 155
invoke-virtual {v0}, Lokhttp3/Headers;->size()I
move-result p0
const/4 v2, 0x0
:goto_0
if-ge v2, p0, :cond_3
.line 157
invoke-virtual {v0, v2}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v3
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v3, v4}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v3
sget-object v4, Lokhttp3/internal/http2/Http2ExchangeCodec;->HTTP_2_SKIPPED_REQUEST_HEADERS:Ljava/util/List;
.line 158
invoke-interface {v4, v3}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_1
const-string v4, "te"
.line 159
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_2
invoke-virtual {v0, v2}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v4
const-string v5, "trailers"
invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_2
.line 160
:cond_1
new-instance v4, Lokhttp3/internal/http2/Header;
invoke-virtual {v0, v2}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v3, v5}, Lokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-interface {v1, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_2
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_3
return-object v1
.end method
.method public static readHttp2HeadersList(Lokhttp3/Headers;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;
.locals 7
.line 170
new-instance v0, Lokhttp3/Headers$Builder;
invoke-direct {v0}, Lokhttp3/Headers$Builder;-><init>()V
.line 171
invoke-virtual {p0}, Lokhttp3/Headers;->size()I
move-result v1
const/4 v2, 0x0
const/4 v3, 0x0
:goto_0
if-ge v3, v1, :cond_2
.line 172
invoke-virtual {p0, v3}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v4
.line 173
invoke-virtual {p0, v3}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v5
const-string v6, ":status"
.line 174
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_0
.line 175
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "HTTP/1.1 "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lokhttp3/internal/http/StatusLine;->parse(Ljava/lang/String;)Lokhttp3/internal/http/StatusLine;
move-result-object v2
goto :goto_1
:cond_0
sget-object v6, Lokhttp3/internal/http2/Http2ExchangeCodec;->HTTP_2_SKIPPED_RESPONSE_HEADERS:Ljava/util/List;
.line 176
invoke-interface {v6, v4}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_1
sget-object v6, Lokhttp3/internal/Internal;->instance:Lokhttp3/internal/Internal;
.line 177
invoke-virtual {v6, v0, v4, v5}, Lokhttp3/internal/Internal;->addLenient(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)V
:cond_1
:goto_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_2
if-eqz v2, :cond_3
.line 182
new-instance p0, Lokhttp3/Response$Builder;
invoke-direct {p0}, Lokhttp3/Response$Builder;-><init>()V
.line 183
invoke-virtual {p0, p1}, Lokhttp3/Response$Builder;->protocol(Lokhttp3/Protocol;)Lokhttp3/Response$Builder;
move-result-object p0
iget p1, v2, Lokhttp3/internal/http/StatusLine;->code:I
.line 184
invoke-virtual {p0, p1}, Lokhttp3/Response$Builder;->code(I)Lokhttp3/Response$Builder;
move-result-object p0
iget-object p1, v2, Lokhttp3/internal/http/StatusLine;->message:Ljava/lang/String;
.line 185
invoke-virtual {p0, p1}, Lokhttp3/Response$Builder;->message(Ljava/lang/String;)Lokhttp3/Response$Builder;
move-result-object p0
.line 186
invoke-virtual {v0}, Lokhttp3/Headers$Builder;->build()Lokhttp3/Headers;
move-result-object p1
invoke-virtual {p0, p1}, Lokhttp3/Response$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Response$Builder;
move-result-object p0
return-object p0
.line 180
:cond_3
new-instance p0, Ljava/net/ProtocolException;
const-string p1, "Expected \':status\' header not present"
invoke-direct {p0, p1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw p0
.end method
# virtual methods
.method public cancel()V
.locals 2
const/4 v0, 0x1
iput-boolean v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->canceled:Z
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
if-eqz v0, :cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 203
sget-object v1, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v0, v1}, Lokhttp3/internal/http2/Http2Stream;->closeLater(Lokhttp3/internal/http2/ErrorCode;)V
:cond_0
return-void
.end method
.method public connection()Lokhttp3/internal/connection/RealConnection;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->realConnection:Lokhttp3/internal/connection/RealConnection;
return-object v0
.end method
.method public createRequestBody(Lokhttp3/Request;J)Lokio/Sink;
.locals 0
iget-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 108
invoke-virtual {p1}, Lokhttp3/internal/http2/Http2Stream;->getSink()Lokio/Sink;
move-result-object p1
return-object p1
.end method
.method public finishRequest()V
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 132
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream;->getSink()Lokio/Sink;
move-result-object v0
invoke-interface {v0}, Lokio/Sink;->close()V
return-void
.end method
.method public flushRequest()V
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->connection:Lokhttp3/internal/http2/Http2Connection;
.line 128
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Connection;->flush()V
return-void
.end method
.method public openResponseBodySource(Lokhttp3/Response;)Lokio/Source;
.locals 0
iget-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 194
invoke-virtual {p1}, Lokhttp3/internal/http2/Http2Stream;->getSource()Lokio/Source;
move-result-object p1
return-object p1
.end method
.method public readResponseHeaders(Z)Lokhttp3/Response$Builder;
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 136
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream;->takeHeaders()Lokhttp3/Headers;
move-result-object v0
iget-object v1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->protocol:Lokhttp3/Protocol;
.line 137
invoke-static {v0, v1}, Lokhttp3/internal/http2/Http2ExchangeCodec;->readHttp2HeadersList(Lokhttp3/Headers;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;
move-result-object v0
if-eqz p1, :cond_0
sget-object p1, Lokhttp3/internal/Internal;->instance:Lokhttp3/internal/Internal;
.line 138
invoke-virtual {p1, v0}, Lokhttp3/internal/Internal;->code(Lokhttp3/Response$Builder;)I
move-result p1
const/16 v1, 0x64
if-ne p1, v1, :cond_0
const/4 p1, 0x0
return-object p1
:cond_0
return-object v0
.end method
.method public reportedContentLength(Lokhttp3/Response;)J
.locals 2
.line 190
invoke-static {p1}, Lokhttp3/internal/http/HttpHeaders;->contentLength(Lokhttp3/Response;)J
move-result-wide v0
return-wide v0
.end method
.method public writeRequestHeaders(Lokhttp3/Request;)V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
if-eqz v0, :cond_0
return-void
.line 114
:cond_0
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v0
if-eqz v0, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
.line 115
:goto_0
invoke-static {p1}, Lokhttp3/internal/http2/Http2ExchangeCodec;->http2HeadersList(Lokhttp3/Request;)Ljava/util/List;
move-result-object p1
iget-object v1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->connection:Lokhttp3/internal/http2/Http2Connection;
.line 116
invoke-virtual {v1, p1, v0}, Lokhttp3/internal/http2/Http2Connection;->newStream(Ljava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
move-result-object p1
iput-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
iget-boolean p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->canceled:Z
if-nez p1, :cond_2
iget-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 123
invoke-virtual {p1}, Lokhttp3/internal/http2/Http2Stream;->readTimeout()Lokio/Timeout;
move-result-object p1
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->chain:Lokhttp3/Interceptor$Chain;
invoke-interface {v0}, Lokhttp3/Interceptor$Chain;->readTimeoutMillis()I
move-result v0
int-to-long v0, v0
sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p1, v0, v1, v2}, Lokio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;
iget-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 124
invoke-virtual {p1}, Lokhttp3/internal/http2/Http2Stream;->writeTimeout()Lokio/Timeout;
move-result-object p1
iget-object v0, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->chain:Lokhttp3/Interceptor$Chain;
invoke-interface {v0}, Lokhttp3/Interceptor$Chain;->writeTimeoutMillis()I
move-result v0
int-to-long v0, v0
invoke-virtual {p1, v0, v1, v2}, Lokio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;
return-void
:cond_2
iget-object p1, p0, Lokhttp3/internal/http2/Http2ExchangeCodec;->stream:Lokhttp3/internal/http2/Http2Stream;
.line 120
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {p1, v0}, Lokhttp3/internal/http2/Http2Stream;->closeLater(Lokhttp3/internal/http2/ErrorCode;)V
.line 121
new-instance p1, Ljava/io/IOException;
const-string v0, "Canceled"
invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.end method

View File

@@ -0,0 +1,256 @@
.class public final Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokio/Source;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Reader;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ContinuationSource"
.end annotation
# instance fields
.field public flags:B
.field public left:I
.field public length:I
.field public padding:S
.field public final source:Lokio/BufferedSource;
.field public streamId:I
# direct methods
.method public constructor <init>(Lokio/BufferedSource;)V
.locals 0
.line 360
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
return-void
.end method
# virtual methods
.method public close()V
.locals 0
return-void
.end method
.method public read(Lokio/Buffer;J)J
.locals 6
:goto_0
iget v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->left:I
const-wide/16 v1, -0x1
if-nez v0, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
iget-short v3, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->padding:S
int-to-long v3, v3
.line 366
invoke-interface {v0, v3, v4}, Lokio/BufferedSource;->skip(J)V
const/4 v0, 0x0
iput-short v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->padding:S
iget-byte v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->flags:B
and-int/lit8 v0, v0, 0x4
if-eqz v0, :cond_0
return-wide v1
.line 369
:cond_0
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->readContinuationHeader()V
goto :goto_0
:cond_1
iget-object v3, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
int-to-long v4, v0
.line 373
invoke-static {p2, p3, v4, v5}, Ljava/lang/Math;->min(JJ)J
move-result-wide p2
invoke-interface {v3, p1, p2, p3}, Lokio/Source;->read(Lokio/Buffer;J)J
move-result-wide p1
cmp-long p3, p1, v1
if-nez p3, :cond_2
return-wide v1
:cond_2
iget p3, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->left:I
int-to-long v0, p3
sub-long/2addr v0, p1
long-to-int p3, v0
iput p3, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->left:I
return-wide p1
.end method
.method public final readContinuationHeader()V
.locals 7
iget v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->streamId:I
iget-object v1, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
.line 389
invoke-static {v1}, Lokhttp3/internal/http2/Http2Reader;->readMedium(Lokio/BufferedSource;)I
move-result v1
iput v1, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->left:I
iput v1, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->length:I
iget-object v1, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
.line 390
invoke-interface {v1}, Lokio/BufferedSource;->readByte()B
move-result v1
and-int/lit16 v1, v1, 0xff
int-to-byte v1, v1
iget-object v2, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
.line 391
invoke-interface {v2}, Lokio/BufferedSource;->readByte()B
move-result v2
and-int/lit16 v2, v2, 0xff
int-to-byte v2, v2
iput-byte v2, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->flags:B
.line 392
sget-object v2, Lokhttp3/internal/http2/Http2Reader;->logger:Ljava/util/logging/Logger;
sget-object v3, Ljava/util/logging/Level;->FINE:Ljava/util/logging/Level;
invoke-virtual {v2, v3}, Ljava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z
move-result v3
if-eqz v3, :cond_0
iget v3, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->streamId:I
iget v4, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->length:I
iget-byte v5, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->flags:B
const/4 v6, 0x1
invoke-static {v6, v3, v4, v1, v5}, Lokhttp3/internal/http2/Http2;->frameLog(ZIIBB)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
:cond_0
iget-object v2, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
.line 393
invoke-interface {v2}, Lokio/BufferedSource;->readInt()I
move-result v2
const v3, 0x7fffffff
and-int/2addr v2, v3
iput v2, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->streamId:I
const/16 v3, 0x9
if-ne v1, v3, :cond_2
if-ne v2, v0, :cond_1
return-void
:cond_1
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Object;
const-string v1, "TYPE_CONTINUATION streamId changed"
.line 395
invoke-static {v1, v0}, Lokhttp3/internal/http2/Http2;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
move-result-object v0
throw v0
.line 394
:cond_2
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
filled-new-array {v0}, [Ljava/lang/Object;
move-result-object v0
const-string v1, "%s != TYPE_CONTINUATION"
invoke-static {v1, v0}, Lokhttp3/internal/http2/Http2;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
move-result-object v0
throw v0
.end method
.method public timeout()Lokio/Timeout;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Reader$ContinuationSource;->source:Lokio/BufferedSource;
.line 380
invoke-interface {v0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,46 @@
.class public interface abstract Lokhttp3/internal/http2/Http2Reader$Handler;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Reader;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Handler"
.end annotation
# virtual methods
.method public abstract ackSettings()V
.end method
.method public abstract data(ZILokio/BufferedSource;I)V
.end method
.method public abstract goAway(ILokhttp3/internal/http2/ErrorCode;Lokio/ByteString;)V
.end method
.method public abstract headers(ZIILjava/util/List;)V
.end method
.method public abstract ping(ZII)V
.end method
.method public abstract priority(IIIZ)V
.end method
.method public abstract pushPromise(IILjava/util/List;)V
.end method
.method public abstract rstStream(ILokhttp3/internal/http2/ErrorCode;)V
.end method
.method public abstract settings(ZLokhttp3/internal/http2/Settings;)V
.end method
.method public abstract windowUpdate(IJ)V
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,540 @@
.class public final Lokhttp3/internal/http2/Http2Stream$FramingSink;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokio/Sink;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Stream;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "FramingSink"
.end annotation
# instance fields
.field public closed:Z
.field public finished:Z
.field public final sendBuffer:Lokio/Buffer;
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Stream;
.field public trailers:Lokhttp3/Headers;
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public constructor <init>(Lokhttp3/internal/http2/Http2Stream;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 532
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 539
new-instance p1, Lokio/Buffer;
invoke-direct {p1}, Lokio/Buffer;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
return-void
.end method
# virtual methods
.method public close()V
.locals 8
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 606
monitor-enter v0
:try_start_0
iget-boolean v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
if-eqz v1, :cond_0
.line 607
monitor-exit v0
return-void
:catchall_0
move-exception v1
goto/16 :goto_4
.line 608
:cond_0
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 609
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
const/4 v1, 0x1
if-nez v0, :cond_5
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 613
invoke-virtual {v0}, Lokio/Buffer;->size()J
move-result-wide v2
const-wide/16 v4, 0x0
cmp-long v0, v2, v4
const/4 v2, 0x0
if-lez v0, :cond_1
move v0, v1
goto :goto_0
:cond_1
move v0, v2
:goto_0
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->trailers:Lokhttp3/Headers;
if-eqz v3, :cond_3
:goto_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 616
invoke-virtual {v0}, Lokio/Buffer;->size()J
move-result-wide v6
cmp-long v0, v6, v4
if-lez v0, :cond_2
.line 617
invoke-virtual {p0, v2}, Lokhttp3/internal/http2/Http2Stream$FramingSink;->emitFrame(Z)V
goto :goto_1
:cond_2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 619
iget-object v2, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v0, v0, Lokhttp3/internal/http2/Http2Stream;->id:I
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->trailers:Lokhttp3/Headers;
invoke-static {v3}, Lokhttp3/internal/Util;->toHeaderBlock(Lokhttp3/Headers;)Ljava/util/List;
move-result-object v3
invoke-virtual {v2, v0, v1, v3}, Lokhttp3/internal/http2/Http2Connection;->writeHeaders(IZLjava/util/List;)V
goto :goto_3
:cond_3
if-eqz v0, :cond_4
:goto_2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 621
invoke-virtual {v0}, Lokio/Buffer;->size()J
move-result-wide v2
cmp-long v0, v2, v4
if-lez v0, :cond_5
.line 622
invoke-virtual {p0, v1}, Lokhttp3/internal/http2/Http2Stream$FramingSink;->emitFrame(Z)V
goto :goto_2
:cond_4
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 625
iget-object v2, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v3, v0, Lokhttp3/internal/http2/Http2Stream;->id:I
const/4 v4, 0x1
const/4 v5, 0x0
const-wide/16 v6, 0x0
invoke-virtual/range {v2 .. v7}, Lokhttp3/internal/http2/Http2Connection;->writeData(IZLokio/Buffer;J)V
:cond_5
:goto_3
iget-object v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 628
monitor-enter v2
:try_start_1
iput-boolean v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
.line 630
monitor-exit v2
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 631
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Connection;->flush()V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 632
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream;->cancelStreamIfNecessary()V
return-void
:catchall_1
move-exception v0
.line 630
:try_start_2
monitor-exit v2
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_1
throw v0
.line 608
:goto_4
:try_start_3
monitor-exit v0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
throw v1
.end method
.method public final emitFrame(Z)V
.locals 11
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 565
monitor-enter v0
:try_start_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 566
iget-object v1, v1, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v1}, Lokio/AsyncTimeout;->enter()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_2
:goto_0
:try_start_1
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 568
iget-wide v2, v1, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-gtz v2, :cond_0
iget-boolean v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-nez v2, :cond_0
iget-boolean v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
if-nez v2, :cond_0
iget-object v2, v1, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
if-nez v2, :cond_0
.line 569
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream;->waitForIo()V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception p1
goto :goto_4
.line 572
:cond_0
:try_start_2
iget-object v1, v1, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 575
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream;->checkOutNotClosed()V
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 576
iget-wide v1, v1, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
invoke-virtual {v3}, Lokio/Buffer;->size()J
move-result-wide v3
invoke-static {v1, v2, v3, v4}, Ljava/lang/Math;->min(JJ)J
move-result-wide v9
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 577
iget-wide v2, v1, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
sub-long/2addr v2, v9
iput-wide v2, v1, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
.line 578
monitor-exit v0
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_2
.line 580
iget-object v0, v1, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v0}, Lokio/AsyncTimeout;->enter()V
if-eqz p1, :cond_1
:try_start_3
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 582
invoke-virtual {p1}, Lokio/Buffer;->size()J
move-result-wide v0
cmp-long p1, v9, v0
if-nez p1, :cond_1
const/4 p1, 0x1
:goto_1
move v7, p1
goto :goto_2
:catchall_1
move-exception p1
goto :goto_3
:cond_1
const/4 p1, 0x0
goto :goto_1
:goto_2
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 583
iget-object v5, p1, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v6, p1, Lokhttp3/internal/http2/Http2Stream;->id:I
iget-object v8, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
invoke-virtual/range {v5 .. v10}, Lokhttp3/internal/http2/Http2Connection;->writeData(IZLokio/Buffer;J)V
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 585
iget-object p1, p1, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {p1}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
return-void
:goto_3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
throw p1
:catchall_2
move-exception p1
goto :goto_5
:goto_4
:try_start_4
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 572
iget-object v1, v1, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
throw p1
.line 578
:goto_5
monitor-exit v0
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_2
throw p1
.end method
.method public flush()V
.locals 4
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 591
monitor-enter v0
:try_start_0
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 592
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream;->checkOutNotClosed()V
.line 593
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:goto_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 594
invoke-virtual {v0}, Lokio/Buffer;->size()J
move-result-wide v0
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_0
const/4 v0, 0x0
.line 595
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Http2Stream$FramingSink;->emitFrame(Z)V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 596
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Connection;->flush()V
goto :goto_0
:cond_0
return-void
:catchall_0
move-exception v1
.line 593
:try_start_1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
.end method
.method public timeout()Lokio/Timeout;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 601
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
return-object v0
.end method
.method public write(Lokio/Buffer;J)V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 553
invoke-virtual {v0, p1, p2, p3}, Lokio/Buffer;->write(Lokio/Buffer;J)V
:goto_0
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->sendBuffer:Lokio/Buffer;
.line 554
invoke-virtual {p1}, Lokio/Buffer;->size()J
move-result-wide p1
const-wide/16 v0, 0x4000
cmp-long p1, p1, v0
if-ltz p1, :cond_0
const/4 p1, 0x0
.line 555
invoke-virtual {p0, p1}, Lokhttp3/internal/http2/Http2Stream$FramingSink;->emitFrame(Z)V
goto :goto_0
:cond_0
return-void
.end method

View File

@@ -0,0 +1,624 @@
.class public final Lokhttp3/internal/http2/Http2Stream$FramingSource;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokio/Source;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Stream;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "FramingSource"
.end annotation
# instance fields
.field public closed:Z
.field public finished:Z
.field public final maxByteCount:J
.field public final readBuffer:Lokio/Buffer;
.field public final receiveBuffer:Lokio/Buffer;
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Stream;
.field public trailers:Lokhttp3/Headers;
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public constructor <init>(Lokhttp3/internal/http2/Http2Stream;J)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 364
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 341
new-instance p1, Lokio/Buffer;
invoke-direct {p1}, Lokio/Buffer;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receiveBuffer:Lokio/Buffer;
.line 344
new-instance p1, Lokio/Buffer;
invoke-direct {p1}, Lokio/Buffer;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
iput-wide p2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->maxByteCount:J
return-void
.end method
.method public static synthetic access$202(Lokhttp3/internal/http2/Http2Stream$FramingSource;Lokhttp3/Headers;)Lokhttp3/Headers;
.locals 0
.line 339
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->trailers:Lokhttp3/Headers;
return-object p1
.end method
# virtual methods
.method public close()V
.locals 5
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 499
monitor-enter v0
const/4 v1, 0x1
:try_start_0
iput-boolean v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->closed:Z
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 501
invoke-virtual {v1}, Lokio/Buffer;->size()J
move-result-wide v1
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 502
invoke-virtual {v3}, Lokio/Buffer;->clear()V
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 503
invoke-virtual {v3}, Ljava/lang/Object;->notifyAll()V
.line 504
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
const-wide/16 v3, 0x0
cmp-long v0, v1, v3
if-lez v0, :cond_0
.line 506
invoke-virtual {p0, v1, v2}, Lokhttp3/internal/http2/Http2Stream$FramingSource;->updateConnectionFlowControl(J)V
:cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 508
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream;->cancelStreamIfNecessary()V
return-void
:catchall_0
move-exception v1
.line 504
:try_start_1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
.end method
.method public read(Lokio/Buffer;J)J
.locals 11
const-wide/16 v0, 0x0
cmp-long v2, p2, v0
if-ltz v2, :cond_8
:goto_0
iget-object v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 377
monitor-enter v2
:try_start_0
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 378
iget-object v3, v3, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v3}, Lokio/AsyncTimeout;->enter()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_1
:try_start_1
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 380
iget-object v4, v3, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
if-eqz v4, :cond_1
.line 382
iget-object v3, v3, Lokhttp3/internal/http2/Http2Stream;->errorException:Ljava/io/IOException;
if-eqz v3, :cond_0
goto :goto_1
.line 384
:cond_0
new-instance v3, Lokhttp3/internal/http2/StreamResetException;
iget-object v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
iget-object v4, v4, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
invoke-direct {v3, v4}, Lokhttp3/internal/http2/StreamResetException;-><init>(Lokhttp3/internal/http2/ErrorCode;)V
goto :goto_1
:catchall_0
move-exception p1
goto/16 :goto_3
:cond_1
const/4 v3, 0x0
:goto_1
iget-boolean v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->closed:Z
if-nez v4, :cond_7
iget-object v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 390
invoke-virtual {v4}, Lokio/Buffer;->size()J
move-result-wide v4
cmp-long v4, v4, v0
const-wide/16 v5, -0x1
if-lez v4, :cond_2
iget-object v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 392
invoke-virtual {v4}, Lokio/Buffer;->size()J
move-result-wide v7
invoke-static {p2, p3, v7, v8}, Ljava/lang/Math;->min(JJ)J
move-result-wide p2
invoke-virtual {v4, p1, p2, p3}, Lokio/Buffer;->read(Lokio/Buffer;J)J
move-result-wide p1
iget-object p3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 393
iget-wide v7, p3, Lokhttp3/internal/http2/Http2Stream;->unacknowledgedBytesRead:J
add-long/2addr v7, p1
iput-wide v7, p3, Lokhttp3/internal/http2/Http2Stream;->unacknowledgedBytesRead:J
if-nez v3, :cond_4
.line 395
iget-object p3, p3, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget-object p3, p3, Lokhttp3/internal/http2/Http2Connection;->okHttpSettings:Lokhttp3/internal/http2/Settings;
.line 397
invoke-virtual {p3}, Lokhttp3/internal/http2/Settings;->getInitialWindowSize()I
move-result p3
div-int/lit8 p3, p3, 0x2
int-to-long v9, p3
cmp-long p3, v7, v9
if-ltz p3, :cond_4
iget-object p3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 400
iget-object v4, p3, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v7, p3, Lokhttp3/internal/http2/Http2Stream;->id:I
iget-wide v8, p3, Lokhttp3/internal/http2/Http2Stream;->unacknowledgedBytesRead:J
invoke-virtual {v4, v7, v8, v9}, Lokhttp3/internal/http2/Http2Connection;->writeWindowUpdateLater(IJ)V
iget-object p3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 401
iput-wide v0, p3, Lokhttp3/internal/http2/Http2Stream;->unacknowledgedBytesRead:J
goto :goto_2
:cond_2
iget-boolean v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
if-nez v4, :cond_3
if-nez v3, :cond_3
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 405
invoke-virtual {v3}, Lokhttp3/internal/http2/Http2Stream;->waitForIo()V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:try_start_2
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 409
iget-object v3, v3, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {v3}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
monitor-exit v2
goto :goto_0
:catchall_1
move-exception p1
goto :goto_4
:cond_3
move-wide p1, v5
:cond_4
:goto_2
iget-object p3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
iget-object p3, p3, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {p3}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
.line 411
monitor-exit v2
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_1
cmp-long p3, p1, v5
if-eqz p3, :cond_5
.line 417
invoke-virtual {p0, p1, p2}, Lokhttp3/internal/http2/Http2Stream$FramingSource;->updateConnectionFlowControl(J)V
return-wide p1
:cond_5
if-nez v3, :cond_6
return-wide v5
.line 426
:cond_6
throw v3
.line 388
:cond_7
:try_start_3
new-instance p1, Ljava/io/IOException;
const-string p2, "stream closed"
invoke-direct {p1, p2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
:goto_3
:try_start_4
iget-object p2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 409
iget-object p2, p2, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-virtual {p2}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
throw p1
.line 411
:goto_4
monitor-exit v2
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_1
throw p1
.line 369
:cond_8
new-instance p1, Ljava/lang/IllegalArgumentException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "byteCount < 0: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public receive(Lokio/BufferedSource;J)V
.locals 9
:cond_0
:goto_0
const-wide/16 v0, 0x0
cmp-long v2, p2, v0
if-lez v2, :cond_8
iget-object v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 448
monitor-enter v2
:try_start_0
iget-boolean v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
iget-object v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 450
invoke-virtual {v4}, Lokio/Buffer;->size()J
move-result-wide v4
add-long/2addr v4, p2
iget-wide v6, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->maxByteCount:J
cmp-long v4, v4, v6
const/4 v5, 0x0
const/4 v6, 0x1
if-lez v4, :cond_1
move v4, v6
goto :goto_1
:cond_1
move v4, v5
.line 451
:goto_1
monitor-exit v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_1
if-eqz v4, :cond_2
.line 455
invoke-interface {p1, p2, p3}, Lokio/BufferedSource;->skip(J)V
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 456
sget-object p2, Lokhttp3/internal/http2/ErrorCode;->FLOW_CONTROL_ERROR:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {p1, p2}, Lokhttp3/internal/http2/Http2Stream;->closeLater(Lokhttp3/internal/http2/ErrorCode;)V
return-void
:cond_2
if-eqz v3, :cond_3
.line 462
invoke-interface {p1, p2, p3}, Lokio/BufferedSource;->skip(J)V
return-void
:cond_3
iget-object v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receiveBuffer:Lokio/Buffer;
.line 467
invoke-interface {p1, v2, p2, p3}, Lokio/Source;->read(Lokio/Buffer;J)J
move-result-wide v2
const-wide/16 v7, -0x1
cmp-long v4, v2, v7
if-eqz v4, :cond_7
sub-long/2addr p2, v2
iget-object v2, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 475
monitor-enter v2
:try_start_1
iget-boolean v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->closed:Z
if-eqz v3, :cond_4
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receiveBuffer:Lokio/Buffer;
.line 477
invoke-virtual {v3}, Lokio/Buffer;->size()J
move-result-wide v3
iget-object v5, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receiveBuffer:Lokio/Buffer;
.line 478
invoke-virtual {v5}, Lokio/Buffer;->clear()V
goto :goto_2
:catchall_0
move-exception p1
goto :goto_3
:cond_4
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
.line 480
invoke-virtual {v3}, Lokio/Buffer;->size()J
move-result-wide v3
cmp-long v3, v3, v0
if-nez v3, :cond_5
move v5, v6
:cond_5
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->readBuffer:Lokio/Buffer;
iget-object v4, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receiveBuffer:Lokio/Buffer;
.line 481
invoke-virtual {v3, v4}, Lokio/Buffer;->writeAll(Lokio/Source;)J
if-eqz v5, :cond_6
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 483
invoke-virtual {v3}, Ljava/lang/Object;->notifyAll()V
:cond_6
move-wide v3, v0
.line 486
:goto_2
monitor-exit v2
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
cmp-long v0, v3, v0
if-lez v0, :cond_0
.line 488
invoke-virtual {p0, v3, v4}, Lokhttp3/internal/http2/Http2Stream$FramingSource;->updateConnectionFlowControl(J)V
goto :goto_0
.line 486
:goto_3
:try_start_2
monitor-exit v2
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
throw p1
.line 468
:cond_7
new-instance p1, Ljava/io/EOFException;
invoke-direct {p1}, Ljava/io/EOFException;-><init>()V
throw p1
:catchall_1
move-exception p1
.line 451
:try_start_3
monitor-exit v2
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
throw p1
:cond_8
return-void
.end method
.method public timeout()Lokio/Timeout;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 494
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
return-object v0
.end method
.method public final updateConnectionFlowControl(J)V
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 435
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
invoke-virtual {v0, p1, p2}, Lokhttp3/internal/http2/Http2Connection;->updateConnectionFlowControl(J)V
return-void
.end method

View File

@@ -0,0 +1,94 @@
.class public Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.super Lokio/AsyncTimeout;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Http2Stream;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "StreamTimeout"
.end annotation
# instance fields
.field public final synthetic this$0:Lokhttp3/internal/http2/Http2Stream;
# direct methods
.method public constructor <init>(Lokhttp3/internal/http2/Http2Stream;)V
.locals 0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 671
invoke-direct {p0}, Lokio/AsyncTimeout;-><init>()V
return-void
.end method
# virtual methods
.method public exitAndThrowIfTimedOut()V
.locals 1
.line 686
invoke-virtual {p0}, Lokio/AsyncTimeout;->exit()Z
move-result v0
if-nez v0, :cond_0
return-void
:cond_0
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
move-result-object v0
throw v0
.end method
.method public newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
.locals 2
.line 678
new-instance v0, Ljava/net/SocketTimeoutException;
const-string v1, "timeout"
invoke-direct {v0, v1}, Ljava/net/SocketTimeoutException;-><init>(Ljava/lang/String;)V
if-eqz p1, :cond_0
.line 680
invoke-virtual {v0, p1}, Ljava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
:cond_0
return-object v0
.end method
.method public timedOut()V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 673
sget-object v1, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {v0, v1}, Lokhttp3/internal/http2/Http2Stream;->closeLater(Lokhttp3/internal/http2/ErrorCode;)V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->this$0:Lokhttp3/internal/http2/Http2Stream;
.line 674
iget-object v0, v0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Connection;->sendDegradedPingLater()V
return-void
.end method

View File

@@ -0,0 +1,957 @@
.class public final Lokhttp3/internal/http2/Http2Stream;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lokhttp3/internal/http2/Http2Stream$StreamTimeout;,
Lokhttp3/internal/http2/Http2Stream$FramingSink;,
Lokhttp3/internal/http2/Http2Stream$FramingSource;
}
.end annotation
# instance fields
.field public bytesLeftInWriteWindow:J
.field public final connection:Lokhttp3/internal/http2/Http2Connection;
.field public errorCode:Lokhttp3/internal/http2/ErrorCode;
.field public errorException:Ljava/io/IOException;
.field public hasResponseHeaders:Z
.field public final headersQueue:Ljava/util/Deque;
.field public final id:I
.field public final readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.field public final sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
.field public final source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.field public unacknowledgedBytesRead:J
.field public final writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public constructor <init>(ILokhttp3/internal/http2/Http2Connection;ZZLokhttp3/Headers;)V
.locals 3
.line 83
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, 0x0
iput-wide v0, p0, Lokhttp3/internal/http2/Http2Stream;->unacknowledgedBytesRead:J
.line 62
new-instance v0, Ljava/util/ArrayDeque;
invoke-direct {v0}, Ljava/util/ArrayDeque;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->headersQueue:Ljava/util/Deque;
.line 69
new-instance v1, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-direct {v1, p0}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;-><init>(Lokhttp3/internal/http2/Http2Stream;)V
iput-object v1, p0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.line 70
new-instance v1, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invoke-direct {v1, p0}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;-><init>(Lokhttp3/internal/http2/Http2Stream;)V
iput-object v1, p0, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
if-eqz p2, :cond_5
iput p1, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
iput-object p2, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
.line 88
iget-object p1, p2, Lokhttp3/internal/http2/Http2Connection;->peerSettings:Lokhttp3/internal/http2/Settings;
.line 89
invoke-virtual {p1}, Lokhttp3/internal/http2/Settings;->getInitialWindowSize()I
move-result p1
int-to-long v1, p1
iput-wide v1, p0, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
.line 90
new-instance p1, Lokhttp3/internal/http2/Http2Stream$FramingSource;
iget-object p2, p2, Lokhttp3/internal/http2/Http2Connection;->okHttpSettings:Lokhttp3/internal/http2/Settings;
invoke-virtual {p2}, Lokhttp3/internal/http2/Settings;->getInitialWindowSize()I
move-result p2
int-to-long v1, p2
invoke-direct {p1, p0, v1, v2}, Lokhttp3/internal/http2/Http2Stream$FramingSource;-><init>(Lokhttp3/internal/http2/Http2Stream;J)V
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 91
new-instance p2, Lokhttp3/internal/http2/Http2Stream$FramingSink;
invoke-direct {p2, p0}, Lokhttp3/internal/http2/Http2Stream$FramingSink;-><init>(Lokhttp3/internal/http2/Http2Stream;)V
iput-object p2, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
iput-boolean p4, p1, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
iput-boolean p3, p2, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-eqz p5, :cond_0
.line 95
invoke-interface {v0, p5}, Ljava/util/Deque;->add(Ljava/lang/Object;)Z
.line 98
:cond_0
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->isLocallyInitiated()Z
move-result p1
if-eqz p1, :cond_2
if-nez p5, :cond_1
goto :goto_0
.line 99
:cond_1
new-instance p1, Ljava/lang/IllegalStateException;
const-string p2, "locally-initiated streams shouldn\'t have headers yet"
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.line 100
:cond_2
:goto_0
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->isLocallyInitiated()Z
move-result p1
if-nez p1, :cond_4
if-eqz p5, :cond_3
goto :goto_1
.line 101
:cond_3
new-instance p1, Ljava/lang/IllegalStateException;
const-string p2, "remotely-initiated streams should have headers"
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_4
:goto_1
return-void
.line 84
:cond_5
new-instance p1, Ljava/lang/NullPointerException;
const-string p2, "connection == null"
invoke-direct {p1, p2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public addBytesToWriteWindow(J)V
.locals 2
iget-wide v0, p0, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
add-long/2addr v0, p1
iput-wide v0, p0, Lokhttp3/internal/http2/Http2Stream;->bytesLeftInWriteWindow:J
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-lez p1, :cond_0
.line 641
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
:cond_0
return-void
.end method
.method public cancelStreamIfNecessary()V
.locals 2
.line 516
monitor-enter p0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 517
iget-boolean v1, v0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
if-nez v1, :cond_1
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->closed:Z
if-eqz v0, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
iget-boolean v1, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-nez v1, :cond_0
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
if-eqz v0, :cond_1
goto :goto_0
:catchall_0
move-exception v0
goto :goto_3
:cond_0
:goto_0
const/4 v0, 0x1
goto :goto_1
:cond_1
const/4 v0, 0x0
.line 518
:goto_1
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->isOpen()Z
move-result v1
.line 519
monitor-exit p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v0, :cond_2
.line 525
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/Http2Stream;->close(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)V
goto :goto_2
:cond_2
if-nez v1, :cond_3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v1, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
.line 527
invoke-virtual {v0, v1}, Lokhttp3/internal/http2/Http2Connection;->removeStream(I)Lokhttp3/internal/http2/Http2Stream;
:cond_3
:goto_2
return-void
.line 519
:goto_3
:try_start_1
monitor-exit p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v0
.end method
.method public checkOutNotClosed()V
.locals 2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
.line 645
iget-boolean v1, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
if-nez v1, :cond_3
.line 647
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-nez v0, :cond_2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
if-eqz v0, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorException:Ljava/io/IOException;
if-eqz v0, :cond_0
goto :goto_0
.line 650
:cond_0
new-instance v0, Lokhttp3/internal/http2/StreamResetException;
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
invoke-direct {v0, v1}, Lokhttp3/internal/http2/StreamResetException;-><init>(Lokhttp3/internal/http2/ErrorCode;)V
:goto_0
throw v0
:cond_1
return-void
.line 648
:cond_2
new-instance v0, Ljava/io/IOException;
const-string v1, "stream finished"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 646
:cond_3
new-instance v0, Ljava/io/IOException;
const-string v1, "stream closed"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public close(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)V
.locals 1
.line 262
invoke-virtual {p0, p1, p2}, Lokhttp3/internal/http2/Http2Stream;->closeInternal(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)Z
move-result p2
if-nez p2, :cond_0
return-void
:cond_0
iget-object p2, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v0, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
.line 265
invoke-virtual {p2, v0, p1}, Lokhttp3/internal/http2/Http2Connection;->writeSynReset(ILokhttp3/internal/http2/ErrorCode;)V
return-void
.end method
.method public final closeInternal(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)Z
.locals 2
.line 282
monitor-enter p0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 284
monitor-exit p0
return v1
:catchall_0
move-exception p1
goto :goto_0
:cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 286
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
if-eqz v0, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-eqz v0, :cond_1
.line 287
monitor-exit p0
return v1
:cond_1
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
iput-object p2, p0, Lokhttp3/internal/http2/Http2Stream;->errorException:Ljava/io/IOException;
.line 291
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 292
monitor-exit p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget p2, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
.line 293
invoke-virtual {p1, p2}, Lokhttp3/internal/http2/Http2Connection;->removeStream(I)Lokhttp3/internal/http2/Http2Stream;
const/4 p1, 0x1
return p1
.line 292
:goto_0
:try_start_1
monitor-exit p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw p1
.end method
.method public closeLater(Lokhttp3/internal/http2/ErrorCode;)V
.locals 2
const/4 v0, 0x0
.line 273
invoke-virtual {p0, p1, v0}, Lokhttp3/internal/http2/Http2Stream;->closeInternal(Lokhttp3/internal/http2/ErrorCode;Ljava/io/IOException;)Z
move-result v0
if-nez v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget v1, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
.line 276
invoke-virtual {v0, v1, p1}, Lokhttp3/internal/http2/Http2Connection;->writeSynResetLater(ILokhttp3/internal/http2/ErrorCode;)V
return-void
.end method
.method public getId()I
.locals 1
iget v0, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
return v0
.end method
.method public getSink()Lokio/Sink;
.locals 2
.line 248
monitor-enter p0
:try_start_0
iget-boolean v0, p0, Lokhttp3/internal/http2/Http2Stream;->hasResponseHeaders:Z
if-nez v0, :cond_1
.line 249
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->isLocallyInitiated()Z
move-result v0
if-eqz v0, :cond_0
goto :goto_0
.line 250
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "reply before requesting the sink"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:catchall_0
move-exception v0
goto :goto_1
.line 252
:cond_1
:goto_0
monitor-exit p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
return-object v0
:goto_1
:try_start_1
monitor-exit p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v0
.end method
.method public getSource()Lokio/Source;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
return-object v0
.end method
.method public isLocallyInitiated()Z
.locals 4
iget v0, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
const/4 v1, 0x1
and-int/2addr v0, v1
const/4 v2, 0x0
if-ne v0, v1, :cond_0
move v0, v1
goto :goto_0
:cond_0
move v0, v2
:goto_0
iget-object v3, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
.line 135
iget-boolean v3, v3, Lokhttp3/internal/http2/Http2Connection;->client:Z
if-ne v3, v0, :cond_1
goto :goto_1
:cond_1
move v1, v2
:goto_1
return v1
.end method
.method public declared-synchronized isOpen()Z
.locals 3
monitor-enter p0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 122
monitor-exit p0
return v1
:cond_0
:try_start_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 124
iget-boolean v2, v0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
if-nez v2, :cond_1
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSource;->closed:Z
if-eqz v0, :cond_3
goto :goto_0
:catchall_0
move-exception v0
goto :goto_1
:cond_1
:goto_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
iget-boolean v2, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->finished:Z
if-nez v2, :cond_2
iget-boolean v0, v0, Lokhttp3/internal/http2/Http2Stream$FramingSink;->closed:Z
if-eqz v0, :cond_3
:cond_2
iget-boolean v0, p0, Lokhttp3/internal/http2/Http2Stream;->hasResponseHeaders:Z
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
if-eqz v0, :cond_3
.line 127
monitor-exit p0
return v1
.line 129
:cond_3
monitor-exit p0
const/4 v0, 0x1
return v0
:goto_1
monitor-exit p0
throw v0
.end method
.method public readTimeout()Lokio/Timeout;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
return-object v0
.end method
.method public receiveData(Lokio/BufferedSource;I)V
.locals 3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
int-to-long v1, p2
.line 299
invoke-virtual {v0, p1, v1, v2}, Lokhttp3/internal/http2/Http2Stream$FramingSource;->receive(Lokio/BufferedSource;J)V
return-void
.end method
.method public receiveHeaders(Lokhttp3/Headers;Z)V
.locals 2
.line 309
monitor-enter p0
:try_start_0
iget-boolean v0, p0, Lokhttp3/internal/http2/Http2Stream;->hasResponseHeaders:Z
const/4 v1, 0x1
if-eqz v0, :cond_1
if-nez p2, :cond_0
goto :goto_0
:cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 314
invoke-static {v0, p1}, Lokhttp3/internal/http2/Http2Stream$FramingSource;->access$202(Lokhttp3/internal/http2/Http2Stream$FramingSource;Lokhttp3/Headers;)Lokhttp3/Headers;
goto :goto_1
:catchall_0
move-exception p1
goto :goto_2
:cond_1
:goto_0
iput-boolean v1, p0, Lokhttp3/internal/http2/Http2Stream;->hasResponseHeaders:Z
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->headersQueue:Ljava/util/Deque;
.line 312
invoke-interface {v0, p1}, Ljava/util/Deque;->add(Ljava/lang/Object;)Z
:goto_1
if-eqz p2, :cond_2
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
.line 317
iput-boolean v1, p1, Lokhttp3/internal/http2/Http2Stream$FramingSource;->finished:Z
.line 319
:cond_2
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->isOpen()Z
move-result p1
.line 320
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 321
monitor-exit p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez p1, :cond_3
iget-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->connection:Lokhttp3/internal/http2/Http2Connection;
iget p2, p0, Lokhttp3/internal/http2/Http2Stream;->id:I
.line 323
invoke-virtual {p1, p2}, Lokhttp3/internal/http2/Http2Connection;->removeStream(I)Lokhttp3/internal/http2/Http2Stream;
:cond_3
return-void
.line 321
:goto_2
:try_start_1
monitor-exit p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw p1
.end method
.method public declared-synchronized receiveRstStream(Lokhttp3/internal/http2/ErrorCode;)V
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
if-nez v0, :cond_0
iput-object p1, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
.line 330
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception p1
goto :goto_1
.line 332
:cond_0
:goto_0
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized takeHeaders()Lokhttp3/Headers;
.locals 2
monitor-enter p0
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.line 148
invoke-virtual {v0}, Lokio/AsyncTimeout;->enter()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_1
:goto_0
:try_start_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->headersQueue:Ljava/util/Deque;
.line 150
invoke-interface {v0}, Ljava/util/Collection;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
if-nez v0, :cond_0
.line 151
invoke-virtual {p0}, Lokhttp3/internal/http2/Http2Stream;->waitForIo()V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_2
:cond_0
:try_start_2
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.line 154
invoke-virtual {v0}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->headersQueue:Ljava/util/Deque;
.line 156
invoke-interface {v0}, Ljava/util/Collection;->isEmpty()Z
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->headersQueue:Ljava/util/Deque;
.line 157
invoke-interface {v0}, Ljava/util/Deque;->removeFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lokhttp3/Headers;
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_1
monitor-exit p0
return-object v0
:catchall_1
move-exception v0
goto :goto_3
:cond_1
:try_start_3
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->errorException:Ljava/io/IOException;
if-eqz v0, :cond_2
goto :goto_1
.line 159
:cond_2
new-instance v0, Lokhttp3/internal/http2/StreamResetException;
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream;->errorCode:Lokhttp3/internal/http2/ErrorCode;
invoke-direct {v0, v1}, Lokhttp3/internal/http2/StreamResetException;-><init>(Lokhttp3/internal/http2/ErrorCode;)V
:goto_1
throw v0
:goto_2
iget-object v1, p0, Lokhttp3/internal/http2/Http2Stream;->readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
.line 154
invoke-virtual {v1}, Lokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V
throw v0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
:goto_3
monitor-exit p0
throw v0
.end method
.method public waitForIo()V
.locals 1
.line 660
:try_start_0
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_0
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
return-void
.line 662
:catch_0
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
.line 663
new-instance v0, Ljava/io/InterruptedIOException;
invoke-direct {v0}, Ljava/io/InterruptedIOException;-><init>()V
throw v0
.end method
.method public writeTimeout()Lokio/Timeout;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Http2Stream;->writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
return-object v0
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,69 @@
.class public final Lokhttp3/internal/http2/Huffman$Node;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/Huffman;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Node"
.end annotation
# instance fields
.field public final children:[Lokhttp3/internal/http2/Huffman$Node;
.field public final symbol:I
.field public final terminalBits:I
# direct methods
.method public constructor <init>()V
.locals 1
.line 208
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x100
new-array v0, v0, [Lokhttp3/internal/http2/Huffman$Node;
iput-object v0, p0, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Huffman$Node;->symbol:I
iput v0, p0, Lokhttp3/internal/http2/Huffman$Node;->terminalBits:I
return-void
.end method
.method public constructor <init>(II)V
.locals 1
.line 220
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-object v0, p0, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
iput p1, p0, Lokhttp3/internal/http2/Huffman$Node;->symbol:I
and-int/lit8 p1, p2, 0x7
if-nez p1, :cond_0
const/16 p1, 0x8
:cond_0
iput p1, p0, Lokhttp3/internal/http2/Huffman$Node;->terminalBits:I
return-void
.end method

View File

@@ -0,0 +1,985 @@
.class public Lokhttp3/internal/http2/Huffman;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lokhttp3/internal/http2/Huffman$Node;
}
.end annotation
# static fields
.field public static final CODES:[I
.field public static final CODE_LENGTHS:[B
.field public static final INSTANCE:Lokhttp3/internal/http2/Huffman;
# instance fields
.field public final root:Lokhttp3/internal/http2/Huffman$Node;
# direct methods
.method static constructor <clinit>()V
.locals 2
const/16 v0, 0x100
new-array v1, v0, [I
fill-array-data v1, :array_0
sput-object v1, Lokhttp3/internal/http2/Huffman;->CODES:[I
new-array v0, v0, [B
fill-array-data v0, :array_1
sput-object v0, Lokhttp3/internal/http2/Huffman;->CODE_LENGTHS:[B
.line 79
new-instance v0, Lokhttp3/internal/http2/Huffman;
invoke-direct {v0}, Lokhttp3/internal/http2/Huffman;-><init>()V
sput-object v0, Lokhttp3/internal/http2/Huffman;->INSTANCE:Lokhttp3/internal/http2/Huffman;
return-void
:array_0
.array-data 4
0x1ff8
0x7fffd8
0xfffffe2
0xfffffe3
0xfffffe4
0xfffffe5
0xfffffe6
0xfffffe7
0xfffffe8
0xffffea
0x3ffffffc # 1.9999995f
0xfffffe9
0xfffffea
0x3ffffffd # 1.9999996f
0xfffffeb
0xfffffec
0xfffffed
0xfffffee
0xfffffef
0xffffff0
0xffffff1
0xffffff2
0x3ffffffe # 1.9999998f
0xffffff3
0xffffff4
0xffffff5
0xffffff6
0xffffff7
0xffffff8
0xffffff9
0xffffffa
0xffffffb
0x14
0x3f8
0x3f9
0xffa
0x1ff9
0x15
0xf8
0x7fa
0x3fa
0x3fb
0xf9
0x7fb
0xfa
0x16
0x17
0x18
0x0
0x1
0x2
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x5c
0xfb
0x7ffc
0x20
0xffb
0x3fc
0x1ffa
0x21
0x5d
0x5e
0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0xfc
0x73
0xfd
0x1ffb
0x7fff0
0x1ffc
0x3ffc
0x22
0x7ffd
0x3
0x23
0x4
0x24
0x5
0x25
0x26
0x27
0x6
0x74
0x75
0x28
0x29
0x2a
0x7
0x2b
0x76
0x2c
0x8
0x9
0x2d
0x77
0x78
0x79
0x7a
0x7b
0x7ffe
0x7fc
0x3ffd
0x1ffd
0xffffffc
0xfffe6
0x3fffd2
0xfffe7
0xfffe8
0x3fffd3
0x3fffd4
0x3fffd5
0x7fffd9
0x3fffd6
0x7fffda
0x7fffdb
0x7fffdc
0x7fffdd
0x7fffde
0xffffeb
0x7fffdf
0xffffec
0xffffed
0x3fffd7
0x7fffe0
0xffffee
0x7fffe1
0x7fffe2
0x7fffe3
0x7fffe4
0x1fffdc
0x3fffd8
0x7fffe5
0x3fffd9
0x7fffe6
0x7fffe7
0xffffef
0x3fffda
0x1fffdd
0xfffe9
0x3fffdb
0x3fffdc
0x7fffe8
0x7fffe9
0x1fffde
0x7fffea
0x3fffdd
0x3fffde
0xfffff0
0x1fffdf
0x3fffdf
0x7fffeb
0x7fffec
0x1fffe0
0x1fffe1
0x3fffe0
0x1fffe2
0x7fffed
0x3fffe1
0x7fffee
0x7fffef
0xfffea
0x3fffe2
0x3fffe3
0x3fffe4
0x7ffff0
0x3fffe5
0x3fffe6
0x7ffff1
0x3ffffe0
0x3ffffe1
0xfffeb
0x7fff1
0x3fffe7
0x7ffff2
0x3fffe8
0x1ffffec
0x3ffffe2
0x3ffffe3
0x3ffffe4
0x7ffffde
0x7ffffdf
0x3ffffe5
0xfffff1
0x1ffffed
0x7fff2
0x1fffe3
0x3ffffe6
0x7ffffe0
0x7ffffe1
0x3ffffe7
0x7ffffe2
0xfffff2
0x1fffe4
0x1fffe5
0x3ffffe8
0x3ffffe9
0xffffffd
0x7ffffe3
0x7ffffe4
0x7ffffe5
0xfffec
0xfffff3
0xfffed
0x1fffe6
0x3fffe9
0x1fffe7
0x1fffe8
0x7ffff3
0x3fffea
0x3fffeb
0x1ffffee
0x1ffffef
0xfffff4
0xfffff5
0x3ffffea
0x7ffff4
0x3ffffeb
0x7ffffe6
0x3ffffec
0x3ffffed
0x7ffffe7
0x7ffffe8
0x7ffffe9
0x7ffffea
0x7ffffeb
0xffffffe
0x7ffffec
0x7ffffed
0x7ffffee
0x7ffffef
0x7fffff0
0x3ffffee
.end array-data
:array_1
.array-data 1
0xdt
0x17t
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x18t
0x1et
0x1ct
0x1ct
0x1et
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1et
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x1ct
0x6t
0xat
0xat
0xct
0xdt
0x6t
0x8t
0xbt
0xat
0xat
0x8t
0xbt
0x8t
0x6t
0x6t
0x6t
0x5t
0x5t
0x5t
0x6t
0x6t
0x6t
0x6t
0x6t
0x6t
0x6t
0x7t
0x8t
0xft
0x6t
0xct
0xat
0xdt
0x6t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x7t
0x8t
0x7t
0x8t
0xdt
0x13t
0xdt
0xet
0x6t
0xft
0x5t
0x6t
0x5t
0x6t
0x5t
0x6t
0x6t
0x6t
0x5t
0x7t
0x7t
0x6t
0x6t
0x6t
0x5t
0x6t
0x7t
0x6t
0x5t
0x5t
0x6t
0x7t
0x7t
0x7t
0x7t
0x7t
0xft
0xbt
0xet
0xdt
0x1ct
0x14t
0x16t
0x14t
0x14t
0x16t
0x16t
0x16t
0x17t
0x16t
0x17t
0x17t
0x17t
0x17t
0x17t
0x18t
0x17t
0x18t
0x18t
0x16t
0x17t
0x18t
0x17t
0x17t
0x17t
0x17t
0x15t
0x16t
0x17t
0x16t
0x17t
0x17t
0x18t
0x16t
0x15t
0x14t
0x16t
0x16t
0x17t
0x17t
0x15t
0x17t
0x16t
0x16t
0x18t
0x15t
0x16t
0x17t
0x17t
0x15t
0x15t
0x16t
0x15t
0x17t
0x16t
0x17t
0x17t
0x14t
0x16t
0x16t
0x16t
0x17t
0x16t
0x16t
0x17t
0x1at
0x1at
0x14t
0x13t
0x16t
0x17t
0x16t
0x19t
0x1at
0x1at
0x1at
0x1bt
0x1bt
0x1at
0x18t
0x19t
0x13t
0x15t
0x1at
0x1bt
0x1bt
0x1at
0x1bt
0x18t
0x15t
0x15t
0x1at
0x1at
0x1ct
0x1bt
0x1bt
0x1bt
0x14t
0x18t
0x14t
0x15t
0x16t
0x15t
0x15t
0x17t
0x16t
0x16t
0x19t
0x19t
0x18t
0x18t
0x1at
0x17t
0x1at
0x1bt
0x1at
0x1at
0x1bt
0x1bt
0x1bt
0x1bt
0x1bt
0x1ct
0x1bt
0x1bt
0x1bt
0x1bt
0x1bt
0x1at
.end array-data
.end method
.method public constructor <init>()V
.locals 1
.line 87
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 85
new-instance v0, Lokhttp3/internal/http2/Huffman$Node;
invoke-direct {v0}, Lokhttp3/internal/http2/Huffman$Node;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/Huffman;->root:Lokhttp3/internal/http2/Huffman$Node;
.line 88
invoke-virtual {p0}, Lokhttp3/internal/http2/Huffman;->buildTree()V
return-void
.end method
.method public static get()Lokhttp3/internal/http2/Huffman;
.locals 1
sget-object v0, Lokhttp3/internal/http2/Huffman;->INSTANCE:Lokhttp3/internal/http2/Huffman;
return-object v0
.end method
# virtual methods
.method public final addCode(IIB)V
.locals 4
.line 173
new-instance v0, Lokhttp3/internal/http2/Huffman$Node;
invoke-direct {v0, p1, p3}, Lokhttp3/internal/http2/Huffman$Node;-><init>(II)V
iget-object p1, p0, Lokhttp3/internal/http2/Huffman;->root:Lokhttp3/internal/http2/Huffman$Node;
:goto_0
const/16 v1, 0x8
if-le p3, v1, :cond_2
add-int/lit8 p3, p3, -0x8
int-to-byte p3, p3
ushr-int v1, p2, p3
and-int/lit16 v1, v1, 0xff
.line 179
iget-object v2, p1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
if-eqz v2, :cond_1
.line 182
aget-object v3, v2, v1
if-nez v3, :cond_0
.line 183
new-instance v3, Lokhttp3/internal/http2/Huffman$Node;
invoke-direct {v3}, Lokhttp3/internal/http2/Huffman$Node;-><init>()V
aput-object v3, v2, v1
.line 185
:cond_0
iget-object p1, p1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
aget-object p1, p1, v1
goto :goto_0
.line 180
:cond_1
new-instance p1, Ljava/lang/IllegalStateException;
const-string p2, "invalid dictionary: prefix not unique"
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_2
sub-int/2addr v1, p3
shl-int/2addr p2, v1
and-int/lit16 p2, p2, 0xff
const/4 p3, 0x1
shl-int/2addr p3, v1
move v1, p2
:goto_1
add-int v2, p2, p3
if-ge v1, v2, :cond_3
.line 192
iget-object v2, p1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
aput-object v0, v2, v1
add-int/lit8 v1, v1, 0x1
goto :goto_1
:cond_3
return-void
.end method
.method public final buildTree()V
.locals 3
const/4 v0, 0x0
:goto_0
sget-object v1, Lokhttp3/internal/http2/Huffman;->CODE_LENGTHS:[B
.line 167
array-length v2, v1
if-ge v0, v2, :cond_0
sget-object v2, Lokhttp3/internal/http2/Huffman;->CODES:[I
.line 168
aget v2, v2, v0
aget-byte v1, v1, v0
invoke-virtual {p0, v0, v2, v1}, Lokhttp3/internal/http2/Huffman;->addCode(IIB)V
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-void
.end method
.method public decode([B)[B
.locals 6
.line 129
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
iget-object v1, p0, Lokhttp3/internal/http2/Huffman;->root:Lokhttp3/internal/http2/Huffman$Node;
const/4 v2, 0x0
move v3, v2
move v4, v3
.line 133
:goto_0
array-length v5, p1
if-ge v2, v5, :cond_2
.line 134
aget-byte v5, p1, v2
and-int/lit16 v5, v5, 0xff
shl-int/lit8 v3, v3, 0x8
or-int/2addr v3, v5
add-int/lit8 v4, v4, 0x8
:goto_1
const/16 v5, 0x8
if-lt v4, v5, :cond_1
add-int/lit8 v5, v4, -0x8
ushr-int v5, v3, v5
and-int/lit16 v5, v5, 0xff
.line 139
iget-object v1, v1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
aget-object v1, v1, v5
.line 140
iget-object v5, v1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
if-nez v5, :cond_0
.line 142
iget v5, v1, Lokhttp3/internal/http2/Huffman$Node;->symbol:I
invoke-virtual {v0, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 143
iget v1, v1, Lokhttp3/internal/http2/Huffman$Node;->terminalBits:I
sub-int/2addr v4, v1
iget-object v1, p0, Lokhttp3/internal/http2/Huffman;->root:Lokhttp3/internal/http2/Huffman$Node;
goto :goto_1
:cond_0
add-int/lit8 v4, v4, -0x8
goto :goto_1
:cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
:goto_2
if-lez v4, :cond_4
rsub-int/lit8 p1, v4, 0x8
shl-int p1, v3, p1
and-int/lit16 p1, p1, 0xff
.line 154
iget-object v1, v1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
aget-object p1, v1, p1
.line 155
iget-object v1, p1, Lokhttp3/internal/http2/Huffman$Node;->children:[Lokhttp3/internal/http2/Huffman$Node;
if-nez v1, :cond_4
iget v1, p1, Lokhttp3/internal/http2/Huffman$Node;->terminalBits:I
if-le v1, v4, :cond_3
goto :goto_3
.line 158
:cond_3
iget v1, p1, Lokhttp3/internal/http2/Huffman$Node;->symbol:I
invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 159
iget p1, p1, Lokhttp3/internal/http2/Huffman$Node;->terminalBits:I
sub-int/2addr v4, p1
iget-object v1, p0, Lokhttp3/internal/http2/Huffman;->root:Lokhttp3/internal/http2/Huffman$Node;
goto :goto_2
.line 163
:cond_4
:goto_3
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
return-object p1
.end method
.method public encode(Lokio/ByteString;Lokio/BufferedSink;)V
.locals 7
const-wide/16 v0, 0x0
const/4 v2, 0x0
move v3, v2
.line 95
:goto_0
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result v4
const/16 v5, 0xff
if-ge v2, v4, :cond_1
.line 96
invoke-virtual {p1, v2}, Lokio/ByteString;->getByte(I)B
move-result v4
and-int/2addr v4, v5
sget-object v5, Lokhttp3/internal/http2/Huffman;->CODES:[I
.line 97
aget v5, v5, v4
sget-object v6, Lokhttp3/internal/http2/Huffman;->CODE_LENGTHS:[B
.line 98
aget-byte v4, v6, v4
shl-long/2addr v0, v4
int-to-long v5, v5
or-long/2addr v0, v5
add-int/2addr v3, v4
:goto_1
const/16 v4, 0x8
if-lt v3, v4, :cond_0
add-int/lit8 v3, v3, -0x8
shr-long v4, v0, v3
long-to-int v4, v4
.line 106
invoke-interface {p2, v4}, Lokio/BufferedSink;->writeByte(I)Lokio/BufferedSink;
goto :goto_1
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
if-lez v3, :cond_2
rsub-int/lit8 p1, v3, 0x8
shl-long/2addr v0, p1
ushr-int p1, v5, v3
int-to-long v2, p1
or-long/2addr v0, v2
long-to-int p1, v0
.line 113
invoke-interface {p2, p1}, Lokio/BufferedSink;->writeByte(I)Lokio/BufferedSink;
:cond_2
return-void
.end method
.method public encodedLength(Lokio/ByteString;)I
.locals 5
const-wide/16 v0, 0x0
const/4 v2, 0x0
.line 120
:goto_0
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result v3
if-ge v2, v3, :cond_0
.line 121
invoke-virtual {p1, v2}, Lokio/ByteString;->getByte(I)B
move-result v3
and-int/lit16 v3, v3, 0xff
sget-object v4, Lokhttp3/internal/http2/Huffman;->CODE_LENGTHS:[B
.line 122
aget-byte v3, v4, v3
int-to-long v3, v3
add-long/2addr v0, v3
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
const-wide/16 v2, 0x7
add-long/2addr v0, v2
const/4 p1, 0x3
shr-long/2addr v0, p1
long-to-int p1, v0
return p1
.end method

View File

@@ -0,0 +1,65 @@
.class public Lokhttp3/internal/http2/PushObserver$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/internal/http2/PushObserver;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http2/PushObserver;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 76
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onData(ILokio/BufferedSource;IZ)Z
.locals 0
int-to-long p3, p3
.line 88
invoke-interface {p2, p3, p4}, Lokio/BufferedSource;->skip(J)V
const/4 p1, 0x1
return p1
.end method
.method public onHeaders(ILjava/util/List;Z)Z
.locals 0
const/4 p1, 0x1
return p1
.end method
.method public onRequest(ILjava/util/List;)Z
.locals 0
const/4 p1, 0x1
return p1
.end method
.method public onReset(ILokhttp3/internal/http2/ErrorCode;)V
.locals 0
return-void
.end method

View File

@@ -0,0 +1,36 @@
.class public interface abstract Lokhttp3/internal/http2/PushObserver;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final CANCEL:Lokhttp3/internal/http2/PushObserver;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 76
new-instance v0, Lokhttp3/internal/http2/PushObserver$1;
invoke-direct {v0}, Lokhttp3/internal/http2/PushObserver$1;-><init>()V
sput-object v0, Lokhttp3/internal/http2/PushObserver;->CANCEL:Lokhttp3/internal/http2/PushObserver;
return-void
.end method
# virtual methods
.method public abstract onData(ILokio/BufferedSource;IZ)Z
.end method
.method public abstract onHeaders(ILjava/util/List;Z)Z
.end method
.method public abstract onRequest(ILjava/util/List;)Z
.end method
.method public abstract onReset(ILokhttp3/internal/http2/ErrorCode;)V
.end method

View File

@@ -0,0 +1,248 @@
.class public final Lokhttp3/internal/http2/Settings;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public set:I
.field public final values:[I
# direct methods
.method public constructor <init>()V
.locals 1
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0xa
new-array v0, v0, [I
iput-object v0, p0, Lokhttp3/internal/http2/Settings;->values:[I
return-void
.end method
# virtual methods
.method public clear()V
.locals 2
const/4 v0, 0x0
iput v0, p0, Lokhttp3/internal/http2/Settings;->set:I
iget-object v1, p0, Lokhttp3/internal/http2/Settings;->values:[I
.line 55
invoke-static {v1, v0}, Ljava/util/Arrays;->fill([II)V
return-void
.end method
.method public get(I)I
.locals 1
iget-object v0, p0, Lokhttp3/internal/http2/Settings;->values:[I
.line 77
aget p1, v0, p1
return p1
.end method
.method public getHeaderTableSize()I
.locals 2
iget v0, p0, Lokhttp3/internal/http2/Settings;->set:I
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Settings;->values:[I
const/4 v1, 0x1
.line 88
aget v0, v0, v1
goto :goto_0
:cond_0
const/4 v0, -0x1
:goto_0
return v0
.end method
.method public getInitialWindowSize()I
.locals 2
iget v0, p0, Lokhttp3/internal/http2/Settings;->set:I
and-int/lit16 v0, v0, 0x80
if-eqz v0, :cond_0
iget-object v0, p0, Lokhttp3/internal/http2/Settings;->values:[I
const/4 v1, 0x7
.line 114
aget v0, v0, v1
goto :goto_0
:cond_0
const v0, 0xffff
:goto_0
return v0
.end method
.method public getMaxConcurrentStreams(I)I
.locals 1
iget v0, p0, Lokhttp3/internal/http2/Settings;->set:I
and-int/lit8 v0, v0, 0x10
if-eqz v0, :cond_0
iget-object p1, p0, Lokhttp3/internal/http2/Settings;->values:[I
const/4 v0, 0x4
.line 99
aget p1, p1, v0
:cond_0
return p1
.end method
.method public getMaxFrameSize(I)I
.locals 1
iget v0, p0, Lokhttp3/internal/http2/Settings;->set:I
and-int/lit8 v0, v0, 0x20
if-eqz v0, :cond_0
iget-object p1, p0, Lokhttp3/internal/http2/Settings;->values:[I
const/4 v0, 0x5
.line 104
aget p1, p1, v0
:cond_0
return p1
.end method
.method public isSet(I)Z
.locals 2
const/4 v0, 0x1
shl-int p1, v0, p1
iget v1, p0, Lokhttp3/internal/http2/Settings;->set:I
and-int/2addr p1, v1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public merge(Lokhttp3/internal/http2/Settings;)V
.locals 2
const/4 v0, 0x0
:goto_0
const/16 v1, 0xa
if-ge v0, v1, :cond_1
.line 123
invoke-virtual {p1, v0}, Lokhttp3/internal/http2/Settings;->isSet(I)Z
move-result v1
if-nez v1, :cond_0
goto :goto_1
.line 124
:cond_0
invoke-virtual {p1, v0}, Lokhttp3/internal/http2/Settings;->get(I)I
move-result v1
invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/Settings;->set(II)Lokhttp3/internal/http2/Settings;
:goto_1
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_1
return-void
.end method
.method public set(II)Lokhttp3/internal/http2/Settings;
.locals 3
if-ltz p1, :cond_1
iget-object v0, p0, Lokhttp3/internal/http2/Settings;->values:[I
.line 59
array-length v1, v0
if-lt p1, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x1
shl-int/2addr v1, p1
iget v2, p0, Lokhttp3/internal/http2/Settings;->set:I
or-int/2addr v1, v2
iput v1, p0, Lokhttp3/internal/http2/Settings;->set:I
.line 65
aput p2, v0, p1
:cond_1
:goto_0
return-object p0
.end method
.method public size()I
.locals 1
iget v0, p0, Lokhttp3/internal/http2/Settings;->set:I
.line 82
invoke-static {v0}, Ljava/lang/Integer;->bitCount(I)I
move-result v0
return v0
.end method

View File

@@ -0,0 +1,34 @@
.class public final Lokhttp3/internal/http2/StreamResetException;
.super Ljava/io/IOException;
.source "SourceFile"
# instance fields
.field public final errorCode:Lokhttp3/internal/http2/ErrorCode;
# direct methods
.method public constructor <init>(Lokhttp3/internal/http2/ErrorCode;)V
.locals 2
.line 25
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "stream was reset: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lokhttp3/internal/http2/StreamResetException;->errorCode:Lokhttp3/internal/http2/ErrorCode;
return-void
.end method