final class okhttp3.internal.http2.Http2Reader implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: okhttp3.internal.http2.Http2Reader
super_class: java.lang.Object
{
static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private final okio.BufferedSource source;
descriptor: Lokio/BufferedSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final okhttp3.internal.http2.Http2Reader$ContinuationSource continuation;
descriptor: Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean client;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final okhttp3.internal.http2.Hpack$Reader hpackReader;
descriptor: Lokhttp3/internal/http2/Hpack$Reader;
flags: (0x0010) ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lokhttp3/internal/http2/Http2;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic okhttp3.internal.http2.Http2Reader.logger:Ljava/util/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(okio.BufferedSource, boolean);
descriptor: (Lokio/BufferedSource;Z)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
2: aload 0
iload 2
putfield okhttp3.internal.http2.Http2Reader.client:Z
3: aload 0
new okhttp3.internal.http2.Http2Reader$ContinuationSource
dup
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokespecial okhttp3.internal.http2.Http2Reader$ContinuationSource.<init>:(Lokio/BufferedSource;)V
putfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
4: aload 0
new okhttp3.internal.http2.Hpack$Reader
dup
sipush 4096
aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
invokespecial okhttp3.internal.http2.Hpack$Reader.<init>:(ILokio/Source;)V
putfield okhttp3.internal.http2.Http2Reader.hpackReader:Lokhttp3/internal/http2/Hpack$Reader;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http2/Http2Reader;
0 6 1 source Lokio/BufferedSource;
0 6 2 client Z
MethodParameters:
Name Flags
source
client
public void readConnectionPreface(okhttp3.internal.http2.Http2Reader$Handler);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Reader.client:Z
ifeq 3
1: aload 0
iconst_1
aload 1
invokevirtual okhttp3.internal.http2.Http2Reader.nextFrame:(ZLokhttp3/internal/http2/Http2Reader$Handler;)Z
ifne 7
2: ldc "Required SETTINGS preface not received"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
getstatic okhttp3.internal.http2.Http2.CONNECTION_PREFACE:Lokio/ByteString;
invokevirtual okio.ByteString.size:()I
i2l
invokeinterface okio.BufferedSource.readByteString:(J)Lokio/ByteString;
astore 2
start local 2 4: getstatic okhttp3.internal.http2.Http2Reader.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 5
getstatic okhttp3.internal.http2.Http2Reader.logger:Ljava/util/logging/Logger;
ldc "<< CONNECTION %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual okio.ByteString.hex:()Ljava/lang/String;
aastore
invokestatic okhttp3.internal.Util.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
5: StackMap locals: okio.ByteString
StackMap stack:
getstatic okhttp3.internal.http2.Http2.CONNECTION_PREFACE:Lokio/ByteString;
aload 2
invokevirtual okio.ByteString.equals:(Ljava/lang/Object;)Z
ifne 7
6: ldc "Expected a connection header but was %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual okio.ByteString.utf8:()Ljava/lang/String;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lokhttp3/internal/http2/Http2Reader;
0 8 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
4 7 2 connectionPreface Lokio/ByteString;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
public boolean nextFrame(boolean, okhttp3.internal.http2.Http2Reader$Handler);
descriptor: (ZLokhttp3/internal/http2/Http2Reader$Handler;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
ldc 9
invokeinterface okio.BufferedSource.require:(J)V
1: goto 4
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokestatic okhttp3.internal.http2.Http2Reader.readMedium:(Lokio/BufferedSource;)I
istore 3
start local 3 5: iload 3
iflt 6
iload 3
sipush 16384
if_icmple 7
6: StackMap locals: int
StackMap stack:
ldc "FRAME_SIZE_ERROR: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
i2b
istore 4
start local 4 8: iload 1
ifeq 10
iload 4
iconst_4
if_icmpeq 10
9: ldc "Expected a SETTINGS frame but was %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 4
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
10: StackMap locals: int
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
i2b
istore 5
start local 5 11: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
ldc 2147483647
iand
istore 6
start local 6 12: getstatic okhttp3.internal.http2.Http2Reader.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 13
getstatic okhttp3.internal.http2.Http2Reader.logger:Ljava/util/logging/Logger;
iconst_1
iload 6
iload 3
iload 4
iload 5
invokestatic okhttp3.internal.http2.Http2.frameLog:(ZIIBB)Ljava/lang/String;
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
13: StackMap locals: int int
StackMap stack:
iload 4
tableswitch { // 0 - 8
0: 14
1: 16
2: 18
3: 20
4: 22
5: 24
6: 26
7: 28
8: 30
default: 32
}
14: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readData:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
15: goto 33
16: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readHeaders:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
17: goto 33
18: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readPriority:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
19: goto 33
20: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readRstStream:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
21: goto 33
22: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readSettings:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
23: goto 33
24: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readPushPromise:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
25: goto 33
26: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readPing:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
27: goto 33
28: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readGoAway:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
29: goto 33
30: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 5
iload 6
invokevirtual okhttp3.internal.http2.Http2Reader.readWindowUpdate:(Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
31: goto 33
32: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
iload 3
i2l
invokeinterface okio.BufferedSource.skip:(J)V
33: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lokhttp3/internal/http2/Http2Reader;
0 34 1 requireSettings Z
0 34 2 handler Lokhttp3/internal/http2/Http2Reader$Handler;
5 34 3 length I
8 34 4 type B
11 34 5 flags B
12 34 6 streamId I
Exception table:
from to target type
0 1 2 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
requireSettings
handler
private void readHeaders(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
ifne 1
ldc "PROTOCOL_ERROR: TYPE_HEADERS streamId == 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 3
iconst_1
iand
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 5
start local 5 4: iload 3
bipush 8
iand
ifeq 5
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
i2s
goto 6
StackMap locals: int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 3
bipush 32
iand
ifeq 10
8: aload 0
aload 1
iload 4
invokevirtual okhttp3.internal.http2.Http2Reader.readPriority:(Lokhttp3/internal/http2/Http2Reader$Handler;I)V
9: iinc 2 -5
10: StackMap locals: int
StackMap stack:
iload 2
iload 3
iload 6
invokestatic okhttp3.internal.http2.Http2Reader.lengthWithoutPadding:(IBS)I
istore 2
11: aload 0
iload 2
iload 6
iload 3
iload 4
invokevirtual okhttp3.internal.http2.Http2Reader.readHeaderBlock:(ISBI)Ljava/util/List;
astore 7
start local 7 12: aload 1
iload 5
iload 4
iconst_m1
aload 7
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.headers:(ZIILjava/util/List;)V
13: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lokhttp3/internal/http2/Http2Reader;
0 14 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 14 2 length I
0 14 3 flags B
0 14 4 streamId I
4 14 5 endStream Z
7 14 6 padding S
12 14 7 headerBlock Ljava/util/List<Lokhttp3/internal/http2/Header;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private java.util.List<okhttp3.internal.http2.Header> readHeaderBlock(int, short, byte, int);
descriptor: (ISBI)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
iload 1
dup_x1
putfield okhttp3.internal.http2.Http2Reader$ContinuationSource.left:I
putfield okhttp3.internal.http2.Http2Reader$ContinuationSource.length:I
1: aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
iload 2
putfield okhttp3.internal.http2.Http2Reader$ContinuationSource.padding:S
2: aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
iload 3
putfield okhttp3.internal.http2.Http2Reader$ContinuationSource.flags:B
3: aload 0
getfield okhttp3.internal.http2.Http2Reader.continuation:Lokhttp3/internal/http2/Http2Reader$ContinuationSource;
iload 4
putfield okhttp3.internal.http2.Http2Reader$ContinuationSource.streamId:I
4: aload 0
getfield okhttp3.internal.http2.Http2Reader.hpackReader:Lokhttp3/internal/http2/Hpack$Reader;
invokevirtual okhttp3.internal.http2.Hpack$Reader.readHeaders:()V
5: aload 0
getfield okhttp3.internal.http2.Http2Reader.hpackReader:Lokhttp3/internal/http2/Hpack$Reader;
invokevirtual okhttp3.internal.http2.Hpack$Reader.getAndResetHeaderList:()Ljava/util/List;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http2/Http2Reader;
0 6 1 length I
0 6 2 padding S
0 6 3 flags B
0 6 4 streamId I
Exceptions:
throws java.io.IOException
Signature: (ISBI)Ljava/util/List<Lokhttp3/internal/http2/Header;>;
MethodParameters:
Name Flags
length
padding
flags
streamId
private void readData(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
ifne 1
ldc "PROTOCOL_ERROR: TYPE_DATA streamId == 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 3
iconst_1
iand
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 5
start local 5 4: iload 3
bipush 32
iand
ifeq 5
iconst_1
goto 6
StackMap locals: int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 6
ifeq 9
8: ldc "PROTOCOL_ERROR: FLAG_COMPRESSED without SETTINGS_COMPRESS_DATA"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
9: StackMap locals: int
StackMap stack:
iload 3
bipush 8
iand
ifeq 10
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
i2s
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: istore 7
start local 7 12: iload 2
iload 3
iload 7
invokestatic okhttp3.internal.http2.Http2Reader.lengthWithoutPadding:(IBS)I
istore 2
13: aload 1
iload 5
iload 4
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
iload 2
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.data:(ZILokio/BufferedSource;I)V
14: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
iload 7
i2l
invokeinterface okio.BufferedSource.skip:(J)V
15: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lokhttp3/internal/http2/Http2Reader;
0 16 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 16 2 length I
0 16 3 flags B
0 16 4 streamId I
4 16 5 inFinished Z
7 16 6 gzipped Z
12 16 7 padding S
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readPriority(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iconst_5
if_icmpeq 1
ldc "TYPE_PRIORITY length: %d != 5"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 4
ifne 2
ldc "TYPE_PRIORITY streamId == 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual okhttp3.internal.http2.Http2Reader.readPriority:(Lokhttp3/internal/http2/Http2Reader$Handler;I)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http2/Http2Reader;
0 4 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 4 2 length I
0 4 3 flags B
0 4 4 streamId I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readPriority(okhttp3.internal.http2.Http2Reader$Handler, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 3
start local 3 1: iload 3
ldc -2147483648
iand
ifeq 2
iconst_1
goto 3
StackMap locals: int
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 4
start local 4 4: iload 3
ldc 2147483647
iand
istore 5
start local 5 5: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
iconst_1
iadd
istore 6
start local 6 6: aload 1
iload 2
iload 5
iload 6
iload 4
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.priority:(IIIZ)V
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lokhttp3/internal/http2/Http2Reader;
0 8 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 8 2 streamId I
1 8 3 w1 I
4 8 4 exclusive Z
5 8 5 streamDependency I
6 8 6 weight I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
streamId
private void readRstStream(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iconst_4
if_icmpeq 1
ldc "TYPE_RST_STREAM length: %d != 4"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 4
ifne 2
ldc "TYPE_RST_STREAM streamId == 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 5
start local 5 3: iload 5
invokestatic okhttp3.internal.http2.ErrorCode.fromHttp2:(I)Lokhttp3/internal/http2/ErrorCode;
astore 6
start local 6 4: aload 6
ifnonnull 6
5: ldc "TYPE_RST_STREAM unexpected error code: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
6: StackMap locals: int okhttp3.internal.http2.ErrorCode
StackMap stack:
aload 1
iload 4
aload 6
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.rstStream:(ILokhttp3/internal/http2/ErrorCode;)V
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lokhttp3/internal/http2/Http2Reader;
0 8 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 8 2 length I
0 8 3 flags B
0 8 4 streamId I
3 8 5 errorCodeInt I
4 8 6 errorCode Lokhttp3/internal/http2/ErrorCode;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readSettings(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
ifeq 1
ldc "TYPE_SETTINGS streamId != 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 3
iconst_1
iand
ifeq 5
2: iload 2
ifeq 3
ldc "FRAME_SIZE_ERROR ack frame should be empty!"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.ackSettings:()V
4: return
5: StackMap locals:
StackMap stack:
iload 2
bipush 6
irem
ifeq 6
ldc "TYPE_SETTINGS length %% 6 != 0: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
6: StackMap locals:
StackMap stack:
new okhttp3.internal.http2.Settings
dup
invokespecial okhttp3.internal.http2.Settings.<init>:()V
astore 5
start local 5 7: iconst_0
istore 6
start local 6 8: goto 25
9: StackMap locals: okhttp3.internal.http2.Settings int
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readShort:()S
ldc 65535
iand
istore 7
start local 7 10: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 8
start local 8 11: iload 7
tableswitch { // 1 - 6
1: 12
2: 13
3: 15
4: 17
5: 20
6: 22
default: 23
}
12: StackMap locals: int int
StackMap stack:
goto 23
13: StackMap locals:
StackMap stack:
iload 8
ifeq 23
iload 8
iconst_1
if_icmpeq 23
14: ldc "PROTOCOL_ERROR SETTINGS_ENABLE_PUSH != 0 or 1"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
15: StackMap locals:
StackMap stack:
iconst_4
istore 7
16: goto 23
17: StackMap locals:
StackMap stack:
bipush 7
istore 7
18: iload 8
ifge 23
19: ldc "PROTOCOL_ERROR SETTINGS_INITIAL_WINDOW_SIZE > 2^31 - 1"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
20: StackMap locals:
StackMap stack:
iload 8
sipush 16384
if_icmplt 21
iload 8
ldc 16777215
if_icmple 23
21: StackMap locals:
StackMap stack:
ldc "PROTOCOL_ERROR SETTINGS_MAX_FRAME_SIZE: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
22: StackMap locals:
StackMap stack:
goto 23
23: StackMap locals:
StackMap stack:
aload 5
iload 7
iload 8
invokevirtual okhttp3.internal.http2.Settings.set:(II)Lokhttp3/internal/http2/Settings;
pop
end local 8 end local 7 24: iinc 6 6
StackMap locals:
StackMap stack:
25: iload 6
iload 2
if_icmplt 9
end local 6 26: aload 1
iconst_0
aload 5
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.settings:(ZLokhttp3/internal/http2/Settings;)V
27: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lokhttp3/internal/http2/Http2Reader;
0 28 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 28 2 length I
0 28 3 flags B
0 28 4 streamId I
7 28 5 settings Lokhttp3/internal/http2/Settings;
8 26 6 i I
10 24 7 id I
11 24 8 value I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readPushPromise(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
ifne 2
1: ldc "PROTOCOL_ERROR: TYPE_PUSH_PROMISE streamId == 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
iload 3
bipush 8
iand
ifeq 3
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
i2s
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
ldc 2147483647
iand
istore 6
start local 6 6: iinc 2 -4
7: iload 2
iload 3
iload 5
invokestatic okhttp3.internal.http2.Http2Reader.lengthWithoutPadding:(IBS)I
istore 2
8: aload 0
iload 2
iload 5
iload 3
iload 4
invokevirtual okhttp3.internal.http2.Http2Reader.readHeaderBlock:(ISBI)Ljava/util/List;
astore 7
start local 7 9: aload 1
iload 4
iload 6
aload 7
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.pushPromise:(IILjava/util/List;)V
10: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lokhttp3/internal/http2/Http2Reader;
0 11 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 11 2 length I
0 11 3 flags B
0 11 4 streamId I
5 11 5 padding S
6 11 6 promisedStreamId I
9 11 7 headerBlock Ljava/util/List<Lokhttp3/internal/http2/Header;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readPing(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
bipush 8
if_icmpeq 1
ldc "TYPE_PING length != 8: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 4
ifeq 2
ldc "TYPE_PING streamId != 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 5
start local 5 3: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 6
start local 6 4: iload 3
iconst_1
iand
ifeq 5
iconst_1
goto 6
StackMap locals: int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 7
start local 7 7: aload 1
iload 7
iload 5
iload 6
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.ping:(ZII)V
8: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lokhttp3/internal/http2/Http2Reader;
0 9 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 9 2 length I
0 9 3 flags B
0 9 4 streamId I
3 9 5 payload1 I
4 9 6 payload2 I
7 9 7 ack Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readGoAway(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
bipush 8
if_icmpge 1
ldc "TYPE_GOAWAY length < 8: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
iload 4
ifeq 2
ldc "TYPE_GOAWAY streamId != 0"
iconst_0
anewarray java.lang.Object
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 5
start local 5 3: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
istore 6
start local 6 4: iload 2
bipush 8
isub
istore 7
start local 7 5: iload 6
invokestatic okhttp3.internal.http2.ErrorCode.fromHttp2:(I)Lokhttp3/internal/http2/ErrorCode;
astore 8
start local 8 6: aload 8
ifnonnull 8
7: ldc "TYPE_GOAWAY unexpected error code: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
8: StackMap locals: okhttp3.internal.http2.Http2Reader okhttp3.internal.http2.Http2Reader$Handler int int int int int int okhttp3.internal.http2.ErrorCode
StackMap stack:
getstatic okio.ByteString.EMPTY:Lokio/ByteString;
astore 9
start local 9 9: iload 7
ifle 11
10: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
iload 7
i2l
invokeinterface okio.BufferedSource.readByteString:(J)Lokio/ByteString;
astore 9
11: StackMap locals: okio.ByteString
StackMap stack:
aload 1
iload 5
aload 8
aload 9
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.goAway:(ILokhttp3/internal/http2/ErrorCode;Lokio/ByteString;)V
12: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lokhttp3/internal/http2/Http2Reader;
0 13 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 13 2 length I
0 13 3 flags B
0 13 4 streamId I
3 13 5 lastStreamId I
4 13 6 errorCodeInt I
5 13 7 opaqueDataLength I
6 13 8 errorCode Lokhttp3/internal/http2/ErrorCode;
9 13 9 debugData Lokio/ByteString;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
private void readWindowUpdate(okhttp3.internal.http2.Http2Reader$Handler, int, byte, int);
descriptor: (Lokhttp3/internal/http2/Http2Reader$Handler;IBI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iconst_4
if_icmpeq 1
ldc "TYPE_WINDOW_UPDATE length !=4: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readInt:()I
i2l
ldc 2147483647
land
lstore 5
start local 5 2: lload 5
lconst_0
lcmp
ifne 3
ldc "windowSizeIncrement was 0"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
3: StackMap locals: long
StackMap stack:
aload 1
iload 4
lload 5
invokeinterface okhttp3.internal.http2.Http2Reader$Handler.windowUpdate:(IJ)V
4: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lokhttp3/internal/http2/Http2Reader;
0 5 1 handler Lokhttp3/internal/http2/Http2Reader$Handler;
0 5 2 length I
0 5 3 flags B
0 5 4 streamId I
2 5 5 increment J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handler
length
flags
streamId
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Reader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Reader;
Exceptions:
throws java.io.IOException
static int readMedium(okio.BufferedSource);
descriptor: (Lokio/BufferedSource;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
bipush 16
ishl
1: aload 0
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
bipush 8
ishl
2: ior
3: aload 0
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
4: ior
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 source Lokio/BufferedSource;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
static int lengthWithoutPadding(int, byte, short);
descriptor: (IBS)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 8
iand
ifeq 1
iinc 0 -1
1: StackMap locals:
StackMap stack:
iload 2
iload 0
if_icmple 3
2: ldc "PROTOCOL_ERROR padding %s > remaining length %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aastore
dup
iconst_1
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic okhttp3.internal.http2.Http2.ioException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
athrow
3: StackMap locals:
StackMap stack:
iload 0
iload 2
isub
i2s
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 length I
0 4 1 flags B
0 4 2 padding S
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
length
flags
padding
}
SourceFile: "Http2Reader.java"
NestMembers:
okhttp3.internal.http2.Http2Reader$ContinuationSource okhttp3.internal.http2.Http2Reader$Handler
InnerClasses:
final Reader = okhttp3.internal.http2.Hpack$Reader of okhttp3.internal.http2.Hpack
final ContinuationSource = okhttp3.internal.http2.Http2Reader$ContinuationSource of okhttp3.internal.http2.Http2Reader
abstract Handler = okhttp3.internal.http2.Http2Reader$Handler of okhttp3.internal.http2.Http2Reader