final class jdk.incubator.http.internal.websocket.Frame$Reader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.internal.websocket.Frame$Reader
super_class: java.lang.Object
{
private static final int AWAITING_FIRST_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int AWAITING_SECOND_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int READING_16_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int READING_64_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int READING_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int READING_PAYLOAD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private final java.nio.ByteBuffer accumulator;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mask;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long remainingPayloadLength;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/incubator/http/internal/websocket/Frame;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.incubator.http.internal.websocket.Frame$Reader.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 8
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
2: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/internal/websocket/Frame$Reader;
void readFrame(java.nio.ByteBuffer, jdk.incubator.http.internal.websocket.Frame$Consumer);
descriptor: (Ljava/nio/ByteBuffer;Ljdk/incubator/http/internal/websocket/Frame$Consumer;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
lookupswitch { // 6
1: 1
2: 19
4: 38
8: 52
16: 68
32: 77
default: 93
}
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 3
2: goto 94
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 3
start local 3 4: aload 2
iload 3
sipush 128
iand
ifeq 5
iconst_1
goto 6
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
5: iconst_0
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
6: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.fin:(Z)V
7: aload 2
iload 3
bipush 64
iand
ifeq 8
iconst_1
goto 9
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
8: iconst_0
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
9: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv1:(Z)V
10: aload 2
iload 3
bipush 32
iand
ifeq 11
iconst_1
goto 12
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
11: iconst_0
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
12: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv2:(Z)V
13: aload 2
iload 3
bipush 16
iand
ifeq 14
iconst_1
goto 15
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
14: iconst_0
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
15: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv3:(Z)V
16: aload 2
iload 3
invokestatic jdk.incubator.http.internal.websocket.Frame$Opcode.ofCode:(I)Ljdk/incubator/http/internal/websocket/Frame$Opcode;
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.opcode:(Ljdk/incubator/http/internal/websocket/Frame$Opcode;)V
17: aload 0
iconst_2
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
18: goto 0
end local 3 19: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 21
20: goto 94
21: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 3
start local 3 22: aload 2
aload 0
iload 3
sipush 128
iand
ifeq 23
iconst_1
goto 24
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer jdk.incubator.http.internal.websocket.Frame$Reader
23: iconst_0
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer jdk.incubator.http.internal.websocket.Frame$Reader int
24: dup_x1
putfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.mask:(Z)V
25: iload 3
bipush 127
iand
i2b
istore 4
start local 4 26: iload 4
bipush 126
if_icmpge 33
27: getstatic jdk.incubator.http.internal.websocket.Frame$Reader.$assertionsDisabled:Z
ifne 28
iload 4
ifge 28
new java.lang.AssertionError
dup
iload 4
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
28: StackMap locals: int
StackMap stack:
aload 2
aload 0
iload 4
i2l
dup2_x1
putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
29: aload 0
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
ifeq 30
bipush 16
goto 31
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
30: bipush 32
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
31: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
32: goto 0
StackMap locals:
StackMap stack:
33: iload 4
bipush 127
if_icmpge 36
34: aload 0
iconst_4
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
35: goto 0
36: StackMap locals:
StackMap stack:
aload 0
bipush 8
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
37: goto 0
end local 4 end local 3 38: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 40
39: goto 94
40: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 3
start local 3 41: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
iload 3
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iconst_2
if_icmpge 43
42: goto 0
43: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getChar:()C
i2l
putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
44: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
ldc 126
lcmp
ifge 46
45: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.notMinimalEncoding:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
athrow
46: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
47: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
48: aload 0
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
ifeq 49
bipush 16
goto 50
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
49: bipush 32
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
50: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
51: goto 0
end local 3 52: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 54
53: goto 94
54: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 3
start local 3 55: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
iload 3
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
bipush 8
if_icmpge 57
56: goto 0
57: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getLong:()J
putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
58: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
lconst_0
lcmp
ifge 60
59: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.negativePayload:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
athrow
60: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
ldc 65536
lcmp
ifge 62
61: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.notMinimalEncoding:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
athrow
62: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
63: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
64: aload 0
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
ifeq 65
bipush 16
goto 66
StackMap locals:
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
65: bipush 32
StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
66: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
67: goto 0
end local 3 68: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 70
69: goto 94
70: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 3
start local 3 71: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
iload 3
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iconst_4
if_icmpeq 73
72: goto 0
73: StackMap locals: int
StackMap stack:
aload 2
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getInt:()I
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.maskingKey:(I)V
74: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
75: aload 0
bipush 32
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
76: goto 0
end local 3 77: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
78: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
79: invokestatic java.lang.Math.min:(JJ)J
l2i
istore 5
start local 5 80: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 81: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 5
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
82: iload 5
ifne 83
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
lconst_0
lcmp
ifne 84
83: StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer top top int int
StackMap stack:
aload 2
aload 1
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadData:(Ljava/nio/ByteBuffer;)V
84: StackMap locals:
StackMap stack:
iload 5
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 7
start local 7 85: iload 7
ifge 87
86: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
87: StackMap locals: int
StackMap stack:
aload 1
iload 6
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
88: aload 0
dup
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
iload 7
i2l
lsub
putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
89: aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
lconst_0
lcmp
ifne 94
90: aload 2
invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.endFrame:()V
91: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
92: goto 94
end local 7 end local 6 end local 5 93: StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer
StackMap stack:
new java.lang.InternalError
dup
aload 0
getfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
94: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 95 0 this Ljdk/incubator/http/internal/websocket/Frame$Reader;
0 95 1 input Ljava/nio/ByteBuffer;
0 95 2 consumer Ljdk/incubator/http/internal/websocket/Frame$Consumer;
4 19 3 b B
22 38 3 b B
41 52 3 b B
55 68 3 b B
71 77 3 b B
26 38 4 p1 B
80 93 5 deliverable I
81 93 6 oldLimit I
85 93 7 consumed I
MethodParameters:
Name Flags
input
consumer
private static jdk.incubator.http.internal.websocket.FailWebSocketException negativePayload(long);
descriptor: (J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new jdk.incubator.http.internal.websocket.FailWebSocketException
dup
1: new java.lang.StringBuilder
dup
ldc "Negative payload length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial jdk.incubator.http.internal.websocket.FailWebSocketException.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 payloadLength J
MethodParameters:
Name Flags
payloadLength
private static jdk.incubator.http.internal.websocket.FailWebSocketException notMinimalEncoding(long);
descriptor: (J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new jdk.incubator.http.internal.websocket.FailWebSocketException
dup
1: new java.lang.StringBuilder
dup
ldc "Not minimally-encoded payload length:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial jdk.incubator.http.internal.websocket.FailWebSocketException.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 payloadLength J
MethodParameters:
Name Flags
payloadLength
}
SourceFile: "Frame.java"
NestHost: jdk.incubator.http.internal.websocket.Frame
InnerClasses:
abstract Consumer = jdk.incubator.http.internal.websocket.Frame$Consumer of jdk.incubator.http.internal.websocket.Frame
final Opcode = jdk.incubator.http.internal.websocket.Frame$Opcode of jdk.incubator.http.internal.websocket.Frame
final Reader = jdk.incubator.http.internal.websocket.Frame$Reader of jdk.incubator.http.internal.websocket.Frame