h.smali
.class public final Lokhttp3/internal/http2/h;
.super Ljava/lang/Object;
.source "Http2Connection.java"
# interfaces
.implements Ljava/io/Closeable;
# static fields
.field private static synthetic $assertionsDisabled:Z
.field private static final bXO:Ljava/util/concurrent/ExecutorService;
# instance fields
.field final bXP:Lokhttp3/internal/http2/j;
.field private final bXQ:Ljava/util/concurrent/ScheduledExecutorService;
.field final bXR:Lokhttp3/internal/http2/w;
.field bXS:Z
.field public bXT:Lokhttp3/internal/http2/x;
.field final bXU:Lokhttp3/internal/http2/x;
.field public final bXV:Lokhttp3/internal/http2/t;
.field public final bXW:Lokhttp3/internal/http2/l;
.field final bxT:Z
.field final bxV:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/Integer;",
"Lokhttp3/internal/http2/p;",
">;"
}
.end annotation
.end field
.field bxX:I
.field bxY:I
.field final bxZ:Ljava/util/concurrent/ExecutorService;
.field byb:J
.field byc:J
.field byf:Z
.field final byj:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field final hostname:Ljava/lang/String;
.field shutdown:Z
.field private socket:Ljava/net/Socket;
# direct methods
.method static constructor <clinit>()V
.registers 9
.prologue
const/4 v8, 0x1
const/4 v2, 0x0
.line 60
const-class v0, Lokhttp3/internal/http2/h;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_27
move v0, v8
:goto_b
sput-boolean v0, Lokhttp3/internal/http2/h;->$assertionsDisabled:Z
.line 80
new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;
const v3, 0x7fffffff
const-wide/16 v4, 0x3c
sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
new-instance v7, Ljava/util/concurrent/SynchronousQueue;
invoke-direct {v7}, Ljava/util/concurrent/SynchronousQueue;-><init>()V
const-string v0, "OkHttp Http2Connection"
.line 82
invoke-static {v0, v8}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
move-result-object v8
invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
sput-object v1, Lokhttp3/internal/http2/h;->bXO:Ljava/util/concurrent/ExecutorService;
.line 80
return-void
:cond_27
move v0, v2
.line 60
goto :goto_b
.end method
.method public constructor <init>(Lokhttp3/internal/http2/i;)V
.registers 14
.prologue
const/4 v11, 0x7
const/4 v9, 0x1
const/4 v10, 0x0
.line 137
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 92
new-instance v0, Ljava/util/LinkedHashMap;
invoke-direct {v0}, Ljava/util/LinkedHashMap;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
.line 115
const-wide/16 v0, 0x0
iput-wide v0, p0, Lokhttp3/internal/http2/h;->byb:J
.line 124
new-instance v0, Lokhttp3/internal/http2/x;
invoke-direct {v0}, Lokhttp3/internal/http2/x;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXT:Lokhttp3/internal/http2/x;
.line 128
new-instance v0, Lokhttp3/internal/http2/x;
invoke-direct {v0}, Lokhttp3/internal/http2/x;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;
.line 130
iput-boolean v10, p0, Lokhttp3/internal/http2/h;->byf:Z
.line 828
new-instance v0, Ljava/util/LinkedHashSet;
invoke-direct {v0}, Ljava/util/LinkedHashSet;-><init>()V
iput-object v0, p0, Lokhttp3/internal/http2/h;->byj:Ljava/util/Set;
.line 138
iget-object v0, p1, Lokhttp3/internal/http2/i;->bXR:Lokhttp3/internal/http2/w;
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXR:Lokhttp3/internal/http2/w;
.line 139
iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z
iput-boolean v0, p0, Lokhttp3/internal/http2/h;->bxT:Z
.line 140
iget-object v0, p1, Lokhttp3/internal/http2/i;->bXP:Lokhttp3/internal/http2/j;
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXP:Lokhttp3/internal/http2/j;
.line 142
iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z
if-eqz v0, :cond_dc
move v0, v9
:goto_39
iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I
.line 143
iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z
if-eqz v0, :cond_45
.line 144
iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I
.line 151
:cond_45
iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z
if-eqz v0, :cond_50
.line 152
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXT:Lokhttp3/internal/http2/x;
const/high16 v1, 0x1000000
invoke-virtual {v0, v11, v1}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;
.line 155
:cond_50
iget-object v0, p1, Lokhttp3/internal/http2/i;->hostname:Ljava/lang/String;
iput-object v0, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;
.line 157
new-instance v0, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
const-string v1, "OkHttp %s Writer"
new-array v2, v9, [Ljava/lang/Object;
iget-object v3, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;
aput-object v3, v2, v10
.line 158
invoke-static {v1, v2}, Lokhttp3/internal/c;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1, v10}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
move-result-object v1
invoke-direct {v0, v9, v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;)V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
.line 159
iget v0, p1, Lokhttp3/internal/http2/i;->bXZ:I
if-eqz v0, :cond_81
.line 160
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
new-instance v1, Lokhttp3/internal/http2/k;
invoke-direct {v1, p0, v10, v10, v10}, Lokhttp3/internal/http2/k;-><init>(Lokhttp3/internal/http2/h;ZII)V
iget v2, p1, Lokhttp3/internal/http2/i;->bXZ:I
int-to-long v2, v2
iget v4, p1, Lokhttp3/internal/http2/i;->bXZ:I
int-to-long v4, v4
sget-object v6, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
.line 165
:cond_81
new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;
const-wide/16 v4, 0x3c
sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
new-instance v7, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {v7}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
const-string v0, "OkHttp %s Push Observer"
new-array v2, v9, [Ljava/lang/Object;
iget-object v3, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;
aput-object v3, v2, v10
.line 167
invoke-static {v0, v2}, Lokhttp3/internal/c;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v0, v9}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
move-result-object v8
move v2, v10
move v3, v9
invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
iput-object v1, p0, Lokhttp3/internal/http2/h;->bxZ:Ljava/util/concurrent/ExecutorService;
.line 168
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;
const v1, 0xffff
invoke-virtual {v0, v11, v1}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;
.line 169
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;
const/4 v1, 0x5
const/16 v2, 0x4000
invoke-virtual {v0, v1, v2}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;
.line 170
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;
invoke-virtual {v0}, Lokhttp3/internal/http2/x;->RW()I
move-result v0
int-to-long v0, v0
iput-wide v0, p0, Lokhttp3/internal/http2/h;->byc:J
.line 171
iget-object v0, p1, Lokhttp3/internal/http2/i;->socket:Ljava/net/Socket;
iput-object v0, p0, Lokhttp3/internal/http2/h;->socket:Ljava/net/Socket;
.line 172
new-instance v0, Lokhttp3/internal/http2/t;
iget-object v1, p1, Lokhttp3/internal/http2/i;->byu:Lokio/e;
iget-boolean v2, p0, Lokhttp3/internal/http2/h;->bxT:Z
invoke-direct {v0, v1, v2}, Lokhttp3/internal/http2/t;-><init>(Lokio/e;Z)V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
.line 174
new-instance v0, Lokhttp3/internal/http2/l;
new-instance v1, Lokhttp3/internal/http2/m;
iget-object v2, p1, Lokhttp3/internal/http2/i;->byt:Lokio/f;
iget-boolean v3, p0, Lokhttp3/internal/http2/h;->bxT:Z
invoke-direct {v1, v2, v3}, Lokhttp3/internal/http2/m;-><init>(Lokio/f;Z)V
invoke-direct {v0, p0, v1}, Lokhttp3/internal/http2/l;-><init>(Lokhttp3/internal/http2/h;Lokhttp3/internal/http2/m;)V
iput-object v0, p0, Lokhttp3/internal/http2/h;->bXW:Lokhttp3/internal/http2/l;
.line 175
return-void
.line 142
:cond_dc
const/4 v0, 0x2
goto/16 :goto_39
.end method
.method static synthetic RP()Ljava/util/concurrent/ExecutorService;
.registers 1
.prologue
.line 60
sget-object v0, Lokhttp3/internal/http2/h;->bXO:Ljava/util/concurrent/ExecutorService;
return-object v0
.end method
.method private a(Lokhttp3/internal/http2/ErrorCode;)V
.registers 6
.prologue
.line 420
iget-object v1, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
monitor-enter v1
.line 422
:try_start_3
monitor-enter p0
:try_end_4
.catchall {:try_start_3 .. :try_end_4} :catchall_1a
.line 423
:try_start_4
iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z
if-eqz v0, :cond_b
.line 424
monitor-exit p0
:try_end_9
.catchall {:try_start_4 .. :try_end_9} :catchall_1d
:try_start_9
monitor-exit v1
:try_end_a
.catchall {:try_start_9 .. :try_end_a} :catchall_1a
.line 432
:goto_a
return-void
.line 426
:cond_b
const/4 v0, 0x1
:try_start_c
iput-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z
.line 427
iget v0, p0, Lokhttp3/internal/http2/h;->bxX:I
.line 428
monitor-exit p0
:try_end_11
.catchall {:try_start_c .. :try_end_11} :catchall_1d
.line 431
:try_start_11
iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
sget-object v3, Lokhttp3/internal/c;->EMPTY_BYTE_ARRAY:[B
invoke-virtual {v2, v0, p1, v3}, Lokhttp3/internal/http2/t;->a(ILokhttp3/internal/http2/ErrorCode;[B)V
.line 432
monitor-exit v1
goto :goto_a
:catchall_1a
move-exception v0
monitor-exit v1
:try_end_1c
.catchall {:try_start_11 .. :try_end_1c} :catchall_1a
throw v0
.line 428
:catchall_1d
move-exception v0
:try_start_1e
monitor-exit p0
:try_end_1f
.catchall {:try_start_1e .. :try_end_1f} :catchall_1d
:try_start_1f
throw v0
:try_end_20
.catchall {:try_start_1f .. :try_end_20} :catchall_1a
.end method
.method static synthetic b(Lokhttp3/internal/http2/h;)V
.registers 1
.prologue
.line 60
invoke-virtual {p0}, Lokhttp3/internal/http2/h;->RO()V
return-void
.end method
.method static synthetic c(Lokhttp3/internal/http2/h;)Ljava/util/concurrent/ScheduledExecutorService;
.registers 2
.prologue
.line 60
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
return-object v0
.end method
.method static synthetic d(Lokhttp3/internal/http2/h;)Z
.registers 2
.prologue
.line 60
const/4 v0, 0x0
iput-boolean v0, p0, Lokhttp3/internal/http2/h;->bXS:Z
return v0
.end method
.method static ft(I)Z
.registers 2
.prologue
.line 824
if-eqz p0, :cond_8
and-int/lit8 v0, p0, 0x1
if-nez v0, :cond_8
const/4 v0, 0x1
:goto_7
return v0
:cond_8
const/4 v0, 0x0
goto :goto_7
.end method
# virtual methods
.method public final declared-synchronized Hn()I
.registers 3
.prologue
.line 200
monitor-enter p0
:try_start_1
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;
.line 1099
iget v1, v0, Lokhttp3/internal/http2/x;->set:I
and-int/lit8 v1, v1, 0x10
if-eqz v1, :cond_10
iget-object v0, v0, Lokhttp3/internal/http2/x;->values:[I
const/4 v1, 0x4
aget v0, v0, v1
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_14
:goto_e
monitor-exit p0
return v0
:cond_10
const v0, 0x7fffffff
.line 200
goto :goto_e
:catchall_14
move-exception v0
monitor-exit p0
throw v0
.end method
.method final RO()V
.registers 3
.prologue
.line 493
:try_start_0
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
sget-object v1, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
:try_end_7
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_7} :catch_8
.line 496
:goto_7
return-void
:catch_8
move-exception v0
goto :goto_7
.end method
.method final a(ILokhttp3/internal/http2/ErrorCode;)V
.registers 10
.prologue
.line 325
:try_start_0
iget-object v6, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
new-instance v0, Lokhttp3/internal/http2/h$1;
const-string v2, "OkHttp %s stream %d"
const/4 v1, 0x2
new-array v3, v1, [Ljava/lang/Object;
const/4 v1, 0x0
iget-object v4, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;
aput-object v4, v3, v1
const/4 v1, 0x1
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v3, v1
move-object v1, p0
move v4, p1
move-object v5, p2
invoke-direct/range {v0 .. v5}, Lokhttp3/internal/http2/h$1;-><init>(Lokhttp3/internal/http2/h;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V
invoke-interface {v6, v0}, Ljava/util/concurrent/ScheduledExecutorService;->execute(Ljava/lang/Runnable;)V
:try_end_1e
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_1e} :catch_1f
.line 337
:goto_1e
return-void
:catch_1f
move-exception v0
goto :goto_1e
.end method
.method public final a(IZLokio/d;J)V
.registers 16
.prologue
const/4 v1, 0x0
const-wide/16 v8, 0x0
.line 284
cmp-long v0, p4, v8
if-nez v0, :cond_31
.line 285
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
invoke-virtual {v0, p2, p1, p3, v1}, Lokhttp3/internal/http2/t;->a(ZILokio/d;I)V
.line 313
:cond_c
return-void
.line 305
:cond_d
:try_start_d
iget-wide v2, p0, Lokhttp3/internal/http2/h;->byc:J
invoke-static {p4, p5, v2, v3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v2
long-to-int v0, v2
.line 306
iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
.line 1157
iget v2, v2, Lokhttp3/internal/http2/t;->bzs:I
.line 306
invoke-static {v0, v2}, Ljava/lang/Math;->min(II)I
move-result v2
.line 307
iget-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J
int-to-long v6, v2
sub-long/2addr v4, v6
iput-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J
.line 308
monitor-exit p0
:try_end_23
.catchall {:try_start_d .. :try_end_23} :catchall_57
.line 310
int-to-long v4, v2
sub-long/2addr p4, v4
.line 311
iget-object v3, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
if-eqz p2, :cond_5e
cmp-long v0, p4, v8
if-nez v0, :cond_5e
const/4 v0, 0x1
:goto_2e
invoke-virtual {v3, v0, p1, p3, v2}, Lokhttp3/internal/http2/t;->a(ZILokio/d;I)V
.line 289
:cond_31
cmp-long v0, p4, v8
if-lez v0, :cond_c
.line 291
monitor-enter p0
.line 293
:goto_36
:try_start_36
iget-wide v2, p0, Lokhttp3/internal/http2/h;->byc:J
cmp-long v0, v2, v8
if-gtz v0, :cond_d
.line 296
iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v0, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_5a
.line 297
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
:try_end_50
.catch Ljava/lang/InterruptedException; {:try_start_36 .. :try_end_50} :catch_50
.catchall {:try_start_36 .. :try_end_50} :catchall_57
.line 302
:catch_50
move-exception v0
:try_start_51
new-instance v0, Ljava/io/InterruptedIOException;
invoke-direct {v0}, Ljava/io/InterruptedIOException;-><init>()V
throw v0
.line 308
:catchall_57
move-exception v0
monitor-exit p0
:try_end_59
.catchall {:try_start_51 .. :try_end_59} :catchall_57
throw v0
.line 299
:cond_5a
:try_start_5a
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_5d
.catch Ljava/lang/InterruptedException; {:try_start_5a .. :try_end_5d} :catch_50
.catchall {:try_start_5a .. :try_end_5d} :catchall_57
goto :goto_36
:cond_5e
move v0, v1
.line 311
goto :goto_2e
.end method
.method final a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
.registers 8
.prologue
const/4 v0, 0x0
.line 444
sget-boolean v1, Lokhttp3/internal/http2/h;->$assertionsDisabled:Z
if-nez v1, :cond_11
invoke-static {p0}, Ljava/lang/Thread;->holdsLock(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_11
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 447
:cond_11
:try_start_11
invoke-direct {p0, p1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;)V
:try_end_14
.catch Ljava/io/IOException; {:try_start_11 .. :try_end_14} :catch_70
move-object v1, v0
.line 453
:goto_15
monitor-enter p0
.line 454
:try_start_16
iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-interface {v2}, Ljava/util/Map;->isEmpty()Z
move-result v2
if-nez v2, :cond_75
.line 455
iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection;
move-result-object v0
iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-interface {v2}, Ljava/util/Map;->size()I
move-result v2
new-array v2, v2, [Lokhttp3/internal/http2/p;
invoke-interface {v0, v2}, Ljava/util/Collection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lokhttp3/internal/http2/p;
.line 456
iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-interface {v2}, Ljava/util/Map;->clear()V
move-object v3, v0
.line 458
:goto_38
monitor-exit p0
:try_end_39
.catchall {:try_start_16 .. :try_end_39} :catchall_4a
.line 460
if-eqz v3, :cond_53
.line 461
array-length v4, v3
const/4 v0, 0x0
move v2, v0
move-object v0, v1
:goto_3f
if-ge v2, v4, :cond_52
aget-object v1, v3, v2
.line 463
:try_start_43
invoke-virtual {v1, p2}, Lokhttp3/internal/http2/p;->b(Lokhttp3/internal/http2/ErrorCode;)V
:try_end_46
.catch Ljava/io/IOException; {:try_start_43 .. :try_end_46} :catch_4d
.line 461
:cond_46
:goto_46
add-int/lit8 v1, v2, 0x1
move v2, v1
goto :goto_3f
.line 458
:catchall_4a
move-exception v0
:try_start_4b
monitor-exit p0
:try_end_4c
.catchall {:try_start_4b .. :try_end_4c} :catchall_4a
throw v0
.line 464
:catch_4d
move-exception v1
.line 465
if-eqz v0, :cond_46
move-object v0, v1
goto :goto_46
:cond_52
move-object v1, v0
.line 472
:cond_53
:try_start_53
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
invoke-virtual {v0}, Lokhttp3/internal/http2/t;->close()V
:try_end_58
.catch Ljava/io/IOException; {:try_start_53 .. :try_end_58} :catch_6b
move-object v0, v1
.line 479
:cond_59
:goto_59
:try_start_59
iget-object v1, p0, Lokhttp3/internal/http2/h;->socket:Ljava/net/Socket;
invoke-virtual {v1}, Ljava/net/Socket;->close()V
:try_end_5e
.catch Ljava/io/IOException; {:try_start_59 .. :try_end_5e} :catch_73
.line 485
:goto_5e
iget-object v1, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;->shutdown()V
.line 486
iget-object v1, p0, Lokhttp3/internal/http2/h;->bxZ:Ljava/util/concurrent/ExecutorService;
invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdown()V
.line 488
if-eqz v0, :cond_72
throw v0
.line 473
:catch_6b
move-exception v0
.line 474
if-eqz v1, :cond_59
move-object v0, v1
goto :goto_59
.line 449
:catch_70
move-exception v1
goto :goto_15
.line 489
:cond_72
return-void
.line 481
:catch_73
move-exception v0
goto :goto_5e
:cond_75
move-object v3, v0
goto :goto_38
.end method
.method final b(ILokhttp3/internal/http2/ErrorCode;)V
.registers 4
.prologue
.line 340
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
invoke-virtual {v0, p1, p2}, Lokhttp3/internal/http2/t;->c(ILokhttp3/internal/http2/ErrorCode;)V
.line 341
return-void
.end method
.method public final close()V
.registers 3
.prologue
.line 440
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->NO_ERROR:Lokhttp3/internal/http2/ErrorCode;
sget-object v1, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;
invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
.line 441
return-void
.end method
.method final f(Ljava/util/List;Z)Lokhttp3/internal/http2/p;
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lokhttp3/internal/http2/a;",
">;Z)",
"Lokhttp3/internal/http2/p;"
}
.end annotation
.prologue
const-wide/16 v10, 0x0
const/4 v6, 0x1
const/4 v7, 0x0
.line 227
if-nez p2, :cond_27
move v3, v6
.line 233
:goto_7
iget-object v8, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
monitor-enter v8
.line 234
:try_start_a
monitor-enter p0
:try_end_b
.catchall {:try_start_a .. :try_end_b} :catchall_24
.line 235
:try_start_b
iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I
const v1, 0x3fffffff # 1.9999999f
if-le v0, v1, :cond_17
.line 236
sget-object v0, Lokhttp3/internal/http2/ErrorCode;->REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;
invoke-direct {p0, v0}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;)V
.line 238
:cond_17
iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z
if-eqz v0, :cond_29
.line 239
new-instance v0, Lokhttp3/internal/http2/ConnectionShutdownException;
invoke-direct {v0}, Lokhttp3/internal/http2/ConnectionShutdownException;-><init>()V
throw v0
.line 248
:catchall_21
move-exception v0
monitor-exit p0
:try_end_23
.catchall {:try_start_b .. :try_end_23} :catchall_21
:try_start_23
throw v0
.line 256
:catchall_24
move-exception v0
monitor-exit v8
:try_end_26
.catchall {:try_start_23 .. :try_end_26} :catchall_24
throw v0
:cond_27
move v3, v7
.line 227
goto :goto_7
.line 241
:cond_29
:try_start_29
iget v1, p0, Lokhttp3/internal/http2/h;->bxY:I
.line 242
iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I
.line 243
new-instance v0, Lokhttp3/internal/http2/p;
const/4 v4, 0x0
move-object v2, p0
move-object v5, p1
invoke-direct/range {v0 .. v5}, Lokhttp3/internal/http2/p;-><init>(ILokhttp3/internal/http2/h;ZZLjava/util/List;)V
.line 244
if-eqz p2, :cond_47
iget-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J
cmp-long v2, v4, v10
if-eqz v2, :cond_47
iget-wide v4, v0, Lokhttp3/internal/http2/p;->byc:J
cmp-long v2, v4, v10
if-nez v2, :cond_48
:cond_47
move v7, v6
.line 245
:cond_48
invoke-virtual {v0}, Lokhttp3/internal/http2/p;->isOpen()Z
move-result v2
if-eqz v2, :cond_57
.line 246
iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-interface {v2, v4, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 248
:cond_57
monitor-exit p0
:try_end_58
.catchall {:try_start_29 .. :try_end_58} :catchall_21
.line 250
:try_start_58
iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
invoke-virtual {v2, v3, v1, p1}, Lokhttp3/internal/http2/t;->c(ZILjava/util/List;)V
.line 256
monitor-exit v8
:try_end_5e
.catchall {:try_start_58 .. :try_end_5e} :catchall_24
.line 258
if-eqz v7, :cond_65
.line 259
iget-object v1, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;
invoke-virtual {v1}, Lokhttp3/internal/http2/t;->flush()V
.line 262
:cond_65
return-object v0
.end method
.method final declared-synchronized fr(I)Lokhttp3/internal/http2/p;
.registers 4
.prologue
.line 190
monitor-enter p0
:try_start_1
iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lokhttp3/internal/http2/p;
:try_end_d
.catchall {:try_start_1 .. :try_end_d} :catchall_f
monitor-exit p0
return-object v0
:catchall_f
move-exception v0
monitor-exit p0
throw v0
.end method
.method final declared-synchronized fs(I)Lokhttp3/internal/http2/p;
.registers 4
.prologue
.line 194
monitor-enter p0
:try_start_1
iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lokhttp3/internal/http2/p;
.line 195
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
:try_end_10
.catchall {:try_start_1 .. :try_end_10} :catchall_12
.line 196
monitor-exit p0
return-object v0
.line 194
:catchall_12
move-exception v0
monitor-exit p0
throw v0
.end method
.method final g(IJ)V
.registers 12
.prologue
.line 345
:try_start_0
iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;
new-instance v1, Lokhttp3/internal/http2/h$2;
const-string v3, "OkHttp Window Update %s stream %d"
const/4 v2, 0x2
new-array v4, v2, [Ljava/lang/Object;
const/4 v2, 0x0
iget-object v5, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;
aput-object v5, v4, v2
const/4 v2, 0x1
.line 346
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v2
move-object v2, p0
move v5, p1
move-wide v6, p2
invoke-direct/range {v1 .. v7}, Lokhttp3/internal/http2/h$2;-><init>(Lokhttp3/internal/http2/h;Ljava/lang/String;[Ljava/lang/Object;IJ)V
.line 345
invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledExecutorService;->execute(Ljava/lang/Runnable;)V
:try_end_1e
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_1e} :catch_1f
.line 358
:goto_1e
return-void
:catch_1f
move-exception v0
goto :goto_1e
.end method
.method public final declared-synchronized isShutdown()Z
.registers 2
.prologue
.line 536
monitor-enter p0
:try_start_1
iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return v0
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method