final class jdk.incubator.http.internal.hpack.Huffman$Reader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.internal.hpack.Huffman$Reader
super_class: java.lang.Object
{
private jdk.incubator.http.internal.hpack.Huffman$Node curr;
descriptor: Ljdk/incubator/http/internal/hpack/Huffman$Node;
flags: (0x0002) ACC_PRIVATE
private int len;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int p;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Reader.reset:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/hpack/Huffman$Reader;
public void read(java.nio.ByteBuffer, java.lang.Appendable, boolean);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Appendable;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iconst_1
iload 3
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Reader.read:(Ljava/nio/ByteBuffer;Ljava/lang/Appendable;ZZ)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/internal/hpack/Huffman$Reader;
0 2 1 source Ljava/nio/ByteBuffer;
0 2 2 destination Ljava/lang/Appendable;
0 2 3 isLast Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
destination
isLast
void read(java.nio.ByteBuffer, java.lang.Appendable, boolean, boolean);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Appendable;ZZ)V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.curr:Ljdk/incubator/http/internal/hpack/Huffman$Node;
astore 5
start local 5 1: aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.len:I
istore 6
start local 6 2: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 7
start local 7 3: goto 29
4: StackMap locals: jdk.incubator.http.internal.hpack.Huffman$Node int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 8
start local 8 5: goto 26
6: StackMap locals: int
StackMap stack:
aload 5
aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.p:I
iload 8
iand
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Node.getChild:(I)Ljdk/incubator/http/internal/hpack/Huffman$Node;
astore 5
7: iinc 6 1
8: aload 5
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Node.isLeaf:()Z
ifeq 23
9: iload 3
ifeq 11
aload 5
getfield jdk.incubator.http.internal.hpack.Huffman$Node.isEOSPath:Z
ifeq 11
10: new java.io.IOException
dup
ldc "Encountered EOS"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 5
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Node.getChar:()C
istore 9
start local 9 12: goto 16
end local 9 StackMap locals:
StackMap stack: java.lang.IllegalStateException
13: astore 10
start local 10 14: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
15: new java.io.IOException
dup
aload 10
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 10 start local 9 16: StackMap locals: int
StackMap stack:
aload 2
iload 9
invokeinterface java.lang.Appendable.append:(C)Ljava/lang/Appendable;
pop
17: goto 21
StackMap locals:
StackMap stack: java.io.IOException
18: astore 10
start local 10 19: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
20: aload 10
athrow
end local 10 21: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.internal.hpack.Huffman.INSTANCE:Ljdk/incubator/http/internal/hpack/Huffman;
getfield jdk.incubator.http.internal.hpack.Huffman.root:Ljdk/incubator/http/internal/hpack/Huffman$Node;
astore 5
22: iconst_0
istore 6
end local 9 23: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.curr:Ljdk/incubator/http/internal/hpack/Huffman$Node;
24: aload 0
iload 6
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.len:I
25: aload 0
dup
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.p:I
iconst_1
ishr
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.p:I
StackMap locals:
StackMap stack:
26: aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.p:I
ifne 6
27: aload 0
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Reader.resetProbe:()V
28: iinc 7 1
end local 8 29: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 4
30: iload 4
ifne 32
31: return
32: StackMap locals:
StackMap stack:
aload 5
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Node.isLeaf:()Z
ifeq 34
33: return
34: StackMap locals:
StackMap stack:
aload 5
getfield jdk.incubator.http.internal.hpack.Huffman$Node.isEOSPath:Z
ifeq 36
aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.len:I
bipush 7
if_icmpgt 36
35: return
36: StackMap locals:
StackMap stack:
aload 5
getfield jdk.incubator.http.internal.hpack.Huffman$Node.isEOSPath:Z
ifeq 42
37: new java.io.IOException
dup
38: new java.lang.StringBuilder
dup
ldc "Padding is too long (len="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.incubator.http.internal.hpack.Huffman$Reader.len:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: ldc "or unexpected end of data"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
41: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
new java.io.IOException
dup
43: ldc "Not a EOS prefix padding or unexpected end of data"
44: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
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 45 0 this Ljdk/incubator/http/internal/hpack/Huffman$Reader;
0 45 1 source Ljava/nio/ByteBuffer;
0 45 2 destination Ljava/lang/Appendable;
0 45 3 reportEOS Z
0 45 4 isLast Z
1 45 5 c Ljdk/incubator/http/internal/hpack/Huffman$Node;
2 45 6 l I
3 45 7 pos I
5 29 8 d I
12 13 9 ch C
16 23 9 ch C
14 16 10 e Ljava/lang/IllegalStateException;
19 21 10 e Ljava/io/IOException;
Exception table:
from to target type
11 12 13 Class java.lang.IllegalStateException
16 17 18 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
destination
reportEOS
isLast
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic jdk.incubator.http.internal.hpack.Huffman.INSTANCE:Ljdk/incubator/http/internal/hpack/Huffman;
getfield jdk.incubator.http.internal.hpack.Huffman.root:Ljdk/incubator/http/internal/hpack/Huffman$Node;
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.curr:Ljdk/incubator/http/internal/hpack/Huffman$Node;
1: aload 0
iconst_0
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.len:I
2: aload 0
invokevirtual jdk.incubator.http.internal.hpack.Huffman$Reader.resetProbe:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/internal/hpack/Huffman$Reader;
private void resetProbe();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 128
putfield jdk.incubator.http.internal.hpack.Huffman$Reader.p:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/internal/hpack/Huffman$Reader;
}
SourceFile: "Huffman.java"
NestHost: jdk.incubator.http.internal.hpack.Huffman
InnerClasses:
Node = jdk.incubator.http.internal.hpack.Huffman$Node of jdk.incubator.http.internal.hpack.Huffman
final Reader = jdk.incubator.http.internal.hpack.Huffman$Reader of jdk.incubator.http.internal.hpack.Huffman