final class okhttp3.internal.ws.WebSocketReader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: okhttp3.internal.ws.WebSocketReader
super_class: java.lang.Object
{
final boolean isClient;
descriptor: Z
flags: (0x0010) ACC_FINAL
final okio.BufferedSource source;
descriptor: Lokio/BufferedSource;
flags: (0x0010) ACC_FINAL
final okhttp3.internal.ws.WebSocketReader$FrameCallback frameCallback;
descriptor: Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
flags: (0x0010) ACC_FINAL
boolean closed;
descriptor: Z
flags: (0x0000)
int opcode;
descriptor: I
flags: (0x0000)
long frameLength;
descriptor: J
flags: (0x0000)
boolean isFinalFrame;
descriptor: Z
flags: (0x0000)
boolean isControlFrame;
descriptor: Z
flags: (0x0000)
private final okio.Buffer controlFrameBuffer;
descriptor: Lokio/Buffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final okio.Buffer messageFrameBuffer;
descriptor: Lokio/Buffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] maskKey;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final okio.Buffer$UnsafeCursor maskCursor;
descriptor: Lokio/Buffer$UnsafeCursor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(boolean, okio.BufferedSource, okhttp3.internal.ws.WebSocketReader$FrameCallback);
descriptor: (ZLokio/BufferedSource;Lokhttp3/internal/ws/WebSocketReader$FrameCallback;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new okio.Buffer
dup
invokespecial okio.Buffer.<init>:()V
putfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
2: aload 0
new okio.Buffer
dup
invokespecial okio.Buffer.<init>:()V
putfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
3: aload 2
ifnonnull 4
new java.lang.NullPointerException
dup
ldc "source == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: okhttp3.internal.ws.WebSocketReader int okio.BufferedSource okhttp3.internal.ws.WebSocketReader$FrameCallback
StackMap stack:
aload 3
ifnonnull 5
new java.lang.NullPointerException
dup
ldc "frameCallback == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield okhttp3.internal.ws.WebSocketReader.isClient:Z
6: aload 0
aload 2
putfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
7: aload 0
aload 3
putfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
8: aload 0
iload 1
ifeq 9
aconst_null
goto 10
StackMap locals:
StackMap stack: okhttp3.internal.ws.WebSocketReader
9: iconst_4
newarray 8
StackMap locals: okhttp3.internal.ws.WebSocketReader int okio.BufferedSource okhttp3.internal.ws.WebSocketReader$FrameCallback
StackMap stack: okhttp3.internal.ws.WebSocketReader byte[]
10: putfield okhttp3.internal.ws.WebSocketReader.maskKey:[B
11: aload 0
iload 1
ifeq 12
aconst_null
goto 13
StackMap locals:
StackMap stack: okhttp3.internal.ws.WebSocketReader
12: new okio.Buffer$UnsafeCursor
dup
invokespecial okio.Buffer$UnsafeCursor.<init>:()V
StackMap locals: okhttp3.internal.ws.WebSocketReader int okio.BufferedSource okhttp3.internal.ws.WebSocketReader$FrameCallback
StackMap stack: okhttp3.internal.ws.WebSocketReader okio.Buffer$UnsafeCursor
13: putfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lokhttp3/internal/ws/WebSocketReader;
0 15 1 isClient Z
0 15 2 source Lokio/BufferedSource;
0 15 3 frameCallback Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
MethodParameters:
Name Flags
isClient
source
frameCallback
void processNextFrame();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readHeader:()V
1: aload 0
getfield okhttp3.internal.ws.WebSocketReader.isControlFrame:Z
ifeq 4
2: aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readControlFrame:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readMessageFrame:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/ws/WebSocketReader;
Exceptions:
throws java.io.IOException
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.ws.WebSocketReader.closed:Z
ifeq 1
new java.io.IOException
dup
ldc "closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.timeout:()Lokio/Timeout;
invokevirtual okio.Timeout.timeoutNanos:()J
lstore 2
start local 2 2: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.timeout:()Lokio/Timeout;
invokevirtual okio.Timeout.clearTimeout:()Lokio/Timeout;
pop
3: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
istore 1
start local 1 4: goto 8
end local 1 StackMap locals: okhttp3.internal.ws.WebSocketReader top long
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.timeout:()Lokio/Timeout;
lload 2
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual okio.Timeout.timeout:(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;
pop
7: aload 4
athrow
start local 1 8: StackMap locals: okhttp3.internal.ws.WebSocketReader int long
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.timeout:()Lokio/Timeout;
lload 2
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual okio.Timeout.timeout:(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;
pop
9: aload 0
iload 1
bipush 15
iand
putfield okhttp3.internal.ws.WebSocketReader.opcode:I
10: aload 0
iload 1
sipush 128
iand
ifeq 11
iconst_1
goto 12
StackMap locals:
StackMap stack: okhttp3.internal.ws.WebSocketReader
11: iconst_0
StackMap locals: okhttp3.internal.ws.WebSocketReader int long
StackMap stack: okhttp3.internal.ws.WebSocketReader int
12: putfield okhttp3.internal.ws.WebSocketReader.isFinalFrame:Z
13: aload 0
iload 1
bipush 8
iand
ifeq 14
iconst_1
goto 15
StackMap locals:
StackMap stack: okhttp3.internal.ws.WebSocketReader
14: iconst_0
StackMap locals: okhttp3.internal.ws.WebSocketReader int long
StackMap stack: okhttp3.internal.ws.WebSocketReader int
15: putfield okhttp3.internal.ws.WebSocketReader.isControlFrame:Z
16: aload 0
getfield okhttp3.internal.ws.WebSocketReader.isControlFrame:Z
ifeq 18
aload 0
getfield okhttp3.internal.ws.WebSocketReader.isFinalFrame:Z
ifne 18
17: new java.net.ProtocolException
dup
ldc "Control frames must be final."
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
iload 1
bipush 64
iand
ifeq 19
iconst_1
goto 20
StackMap locals:
StackMap stack:
19: iconst_0
StackMap locals:
StackMap stack: int
20: istore 4
start local 4 21: iload 1
bipush 32
iand
ifeq 22
iconst_1
goto 23
StackMap locals: int
StackMap stack:
22: iconst_0
StackMap locals:
StackMap stack: int
23: istore 5
start local 5 24: iload 1
bipush 16
iand
ifeq 25
iconst_1
goto 26
StackMap locals: int
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 6
start local 6 27: iload 4
ifne 28
iload 5
ifne 28
iload 6
ifeq 29
28: StackMap locals: int
StackMap stack:
new java.net.ProtocolException
dup
ldc "Reserved flags are unsupported."
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readByte:()B
sipush 255
iand
istore 7
start local 7 30: iload 7
sipush 128
iand
ifeq 31
iconst_1
goto 32
StackMap locals: int
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: istore 8
start local 8 33: iload 8
aload 0
getfield okhttp3.internal.ws.WebSocketReader.isClient:Z
if_icmpne 38
34: new java.net.ProtocolException
dup
aload 0
getfield okhttp3.internal.ws.WebSocketReader.isClient:Z
ifeq 36
35: ldc "Server-sent frames must not be masked."
goto 37
36: StackMap locals: okhttp3.internal.ws.WebSocketReader int long int int int int int
StackMap stack: new 34 new 34
ldc "Client-sent frames must be masked."
37: StackMap locals: okhttp3.internal.ws.WebSocketReader int long int int int int int
StackMap stack: new 34 new 34 java.lang.String
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
aload 0
iload 7
bipush 127
iand
i2l
putfield okhttp3.internal.ws.WebSocketReader.frameLength:J
39: aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
ldc 126
lcmp
ifne 42
40: aload 0
aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readShort:()S
i2l
ldc 65535
land
putfield okhttp3.internal.ws.WebSocketReader.frameLength:J
41: goto 48
StackMap locals:
StackMap stack:
42: aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
ldc 127
lcmp
ifne 48
43: aload 0
aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
invokeinterface okio.BufferedSource.readLong:()J
putfield okhttp3.internal.ws.WebSocketReader.frameLength:J
44: aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
lconst_0
lcmp
ifge 48
45: new java.net.ProtocolException
dup
46: new java.lang.StringBuilder
dup
ldc "Frame length 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " > 0x7FFFFFFFFFFFFFFF"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
47: invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
48: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.isControlFrame:Z
ifeq 50
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
ldc 125
lcmp
ifle 50
49: new java.net.ProtocolException
dup
ldc "Control frame must be less than 125B."
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
50: StackMap locals:
StackMap stack:
iload 8
ifeq 52
51: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskKey:[B
invokeinterface okio.BufferedSource.readFully:([B)V
52: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lokhttp3/internal/ws/WebSocketReader;
4 5 1 b0 I
8 53 1 b0 I
2 53 2 timeoutBefore J
21 53 4 reservedFlag1 Z
24 53 5 reservedFlag2 Z
27 53 6 reservedFlag3 Z
30 53 7 b1 I
33 53 8 isMasked Z
Exception table:
from to target type
3 5 5 any
Exceptions:
throws java.io.IOException
private void readControlFrame();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
lconst_0
lcmp
ifle 7
1: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
invokeinterface okio.BufferedSource.readFully:(Lokio/Buffer;J)V
2: aload 0
getfield okhttp3.internal.ws.WebSocketReader.isClient:Z
ifne 7
3: aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
invokevirtual okio.Buffer.readAndWriteUnsafe:(Lokio/Buffer$UnsafeCursor;)Lokio/Buffer$UnsafeCursor;
pop
4: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
lconst_0
invokevirtual okio.Buffer$UnsafeCursor.seek:(J)I
pop
5: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskKey:[B
invokestatic okhttp3.internal.ws.WebSocketProtocol.toggleMask:(Lokio/Buffer$UnsafeCursor;[B)V
6: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
invokevirtual okio.Buffer$UnsafeCursor.close:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.opcode:I
tableswitch { // 8 - 10
8: 12
9: 8
10: 10
default: 25
}
8: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readByteString:()Lokio/ByteString;
invokeinterface okhttp3.internal.ws.WebSocketReader$FrameCallback.onReadPing:(Lokio/ByteString;)V
9: goto 26
10: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readByteString:()Lokio/ByteString;
invokeinterface okhttp3.internal.ws.WebSocketReader$FrameCallback.onReadPong:(Lokio/ByteString;)V
11: goto 26
12: StackMap locals:
StackMap stack:
sipush 1005
istore 1
start local 1 13: ldc ""
astore 2
start local 2 14: aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
lstore 3
start local 3 15: lload 3
lconst_1
lcmp
ifne 17
16: new java.net.ProtocolException
dup
ldc "Malformed close payload length of 1."
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: int java.lang.String long
StackMap stack:
lload 3
lconst_0
lcmp
ifeq 22
18: aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readShort:()S
istore 1
19: aload 0
getfield okhttp3.internal.ws.WebSocketReader.controlFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readUtf8:()Ljava/lang/String;
astore 2
20: iload 1
invokestatic okhttp3.internal.ws.WebSocketProtocol.closeCodeExceptionMessage:(I)Ljava/lang/String;
astore 5
start local 5 21: aload 5
ifnull 22
new java.net.ProtocolException
dup
aload 5
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 5 22: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
iload 1
aload 2
invokeinterface okhttp3.internal.ws.WebSocketReader$FrameCallback.onReadClose:(ILjava/lang/String;)V
23: aload 0
iconst_1
putfield okhttp3.internal.ws.WebSocketReader.closed:Z
24: goto 26
end local 3 end local 2 end local 1 25: StackMap locals:
StackMap stack:
new java.net.ProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Unknown control opcode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield okhttp3.internal.ws.WebSocketReader.opcode:I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lokhttp3/internal/ws/WebSocketReader;
13 25 1 code I
14 25 2 reason Ljava/lang/String;
15 25 3 bufferSize J
21 22 5 codeExceptionMessage Ljava/lang/String;
Exceptions:
throws java.io.IOException
private void readMessageFrame();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.ws.WebSocketReader.opcode:I
istore 1
start local 1 1: iload 1
iconst_1
if_icmpeq 3
iload 1
iconst_2
if_icmpeq 3
2: new java.net.ProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Unknown opcode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readMessage:()V
4: iload 1
iconst_1
if_icmpne 7
5: aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readUtf8:()Ljava/lang/String;
invokeinterface okhttp3.internal.ws.WebSocketReader$FrameCallback.onReadMessage:(Ljava/lang/String;)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameCallback:Lokhttp3/internal/ws/WebSocketReader$FrameCallback;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.readByteString:()Lokio/ByteString;
invokeinterface okhttp3.internal.ws.WebSocketReader$FrameCallback.onReadMessage:(Lokio/ByteString;)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lokhttp3/internal/ws/WebSocketReader;
1 9 1 opcode I
Exceptions:
throws java.io.IOException
private void readUntilNonControlFrame();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: goto 5
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readHeader:()V
2: aload 0
getfield okhttp3.internal.ws.WebSocketReader.isControlFrame:Z
ifne 4
3: goto 6
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readControlFrame:()V
5: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.closed:Z
ifeq 1
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lokhttp3/internal/ws/WebSocketReader;
Exceptions:
throws java.io.IOException
private void readMessage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.closed:Z
ifeq 1
new java.io.IOException
dup
ldc "closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
lconst_0
lcmp
ifle 8
2: aload 0
getfield okhttp3.internal.ws.WebSocketReader.source:Lokio/BufferedSource;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
invokeinterface okio.BufferedSource.readFully:(Lokio/Buffer;J)V
3: aload 0
getfield okhttp3.internal.ws.WebSocketReader.isClient:Z
ifne 8
4: aload 0
getfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
invokevirtual okio.Buffer.readAndWriteUnsafe:(Lokio/Buffer$UnsafeCursor;)Lokio/Buffer$UnsafeCursor;
pop
5: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.messageFrameBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
aload 0
getfield okhttp3.internal.ws.WebSocketReader.frameLength:J
lsub
invokevirtual okio.Buffer$UnsafeCursor.seek:(J)I
pop
6: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskKey:[B
invokestatic okhttp3.internal.ws.WebSocketProtocol.toggleMask:(Lokio/Buffer$UnsafeCursor;[B)V
7: aload 0
getfield okhttp3.internal.ws.WebSocketReader.maskCursor:Lokio/Buffer$UnsafeCursor;
invokevirtual okio.Buffer$UnsafeCursor.close:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.ws.WebSocketReader.isFinalFrame:Z
ifeq 9
goto 12
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual okhttp3.internal.ws.WebSocketReader.readUntilNonControlFrame:()V
10: aload 0
getfield okhttp3.internal.ws.WebSocketReader.opcode:I
ifeq 0
11: new java.net.ProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Expected continuation opcode. Got: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield okhttp3.internal.ws.WebSocketReader.opcode:I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lokhttp3/internal/ws/WebSocketReader;
Exceptions:
throws java.io.IOException
}
SourceFile: "WebSocketReader.java"
NestMembers:
okhttp3.internal.ws.WebSocketReader$FrameCallback
InnerClasses:
public abstract FrameCallback = okhttp3.internal.ws.WebSocketReader$FrameCallback of okhttp3.internal.ws.WebSocketReader
public final UnsafeCursor = okio.Buffer$UnsafeCursor of okio.Buffer