final class jdk.internal.net.http.hpack.QuickHuffman$Reader implements jdk.internal.net.http.hpack.Huffman$Reader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.hpack.QuickHuffman$Reader
super_class: java.lang.Object
{
private final jdk.internal.net.http.hpack.HPACK$BufferUpdateConsumer UPDATER;
descriptor: Ljdk/internal/net/http/hpack/HPACK$BufferUpdateConsumer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.internal.net.http.hpack.QuickHuffman$Node curr;
descriptor: Ljdk/internal/net/http/hpack/QuickHuffman$Node;
flags: (0x0002) ACC_PRIVATE
private long buffer;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int bufferLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int len;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean done;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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
2: aload 0
invokedynamic accept(Ljdk/internal/net/http/hpack/QuickHuffman$Reader;)Ljdk/internal/net/http/hpack/HPACK$BufferUpdateConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(JI)V
jdk/internal/net/http/hpack/QuickHuffman$Reader.lambda$0(JI)V (7)
(JI)V
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.UPDATER:Ljdk/internal/net/http/hpack/HPACK$BufferUpdateConsumer;
3: aload 0
getstatic jdk.internal.net.http.hpack.QuickHuffman.root:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/hpack/QuickHuffman$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=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: goto 41
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 2: aload 1
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.UPDATER:Ljdk/internal/net/http/hpack/HPACK$BufferUpdateConsumer;
invokestatic jdk.internal.net.http.hpack.HPACK.read:(Ljava/nio/ByteBuffer;JILjdk/internal/net/http/hpack/HPACK$BufferUpdateConsumer;)I
istore 5
start local 5 3: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
bipush 8
if_icmpge 15
4: iload 5
iload 4
if_icmpge 6
5: goto 35
6: StackMap locals:
StackMap stack:
iload 3
ifne 8
7: return
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
ifle 13
9: aload 0
dup
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
ldc -72057594037927936
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
lushr
10: ldc -72057594037927936
11: land
lor
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.done:Z
14: goto 35
15: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
bipush 56
lushr
l2i
istore 6
start local 6 16: aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
iload 6
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getChild:(I)Ljdk/internal/net/http/hpack/QuickHuffman$Node;
astore 7
start local 7 17: aload 7
ifnonnull 19
18: new java.io.IOException
dup
ldc "Unexpected byte"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: int jdk.internal.net.http.hpack.QuickHuffman$Node
StackMap stack:
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.isLeaf:()Z
ifeq 30
20: aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getLength:()I
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
if_icmple 24
21: new java.io.IOException
dup
22: ldc "Not a EOS prefix padding or unexpected end of data"
23: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.isEOSPath:()Z
ifeq 26
25: new java.io.IOException
dup
ldc "Encountered EOS"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 2
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getSymbol:()C
invokeinterface java.lang.Appendable.append:(C)Ljava/lang/Appendable;
pop
27: aload 0
getstatic jdk.internal.net.http.hpack.QuickHuffman.root:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
28: aload 0
iconst_0
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
29: goto 32
30: StackMap locals:
StackMap stack:
aload 0
aload 7
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
31: aload 0
dup
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getLength:()I
invokestatic java.lang.Math.min:(II)I
iadd
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
32: StackMap locals:
StackMap stack:
aload 0
dup
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getLength:()I
lshl
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
33: aload 0
dup
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
aload 7
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.getLength:()I
isub
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
end local 7 end local 6 34: goto 3
35: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.done:Z
ifeq 41
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
invokeinterface jdk.internal.net.http.hpack.QuickHuffman$Node.isEOSPath:()Z
ifeq 41
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
bipush 7
if_icmple 41
36: new java.io.IOException
dup
37: new java.lang.StringBuilder
dup
ldc "Padding is too long (len="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
38: ldc "or unexpected end of data"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 41: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.QuickHuffman$Reader.done:Z
ifeq 1
42: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Ljdk/internal/net/http/hpack/QuickHuffman$Reader;
0 43 1 source Ljava/nio/ByteBuffer;
0 43 2 destination Ljava/lang/Appendable;
0 43 3 isLast Z
2 41 4 remaining I
3 41 5 nBytes I
16 34 6 idx I
17 34 7 node Ljdk/internal/net/http/hpack/QuickHuffman$Node;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
destination
isLast
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getstatic jdk.internal.net.http.hpack.QuickHuffman.root:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.curr:Ljdk/internal/net/http/hpack/QuickHuffman$Node;
1: aload 0
iconst_0
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.len:I
2: aload 0
lconst_0
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
3: aload 0
iconst_0
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
4: aload 0
iconst_0
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.done:Z
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/hpack/QuickHuffman$Reader;
private void lambda$0(long, int);
descriptor: (JI)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.buffer:J
1: aload 0
iload 3
putfield jdk.internal.net.http.hpack.QuickHuffman$Reader.bufferLen:I
2: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/hpack/QuickHuffman$Reader;
0 3 1 buf J
0 3 3 bufLen I
}
SourceFile: "QuickHuffman.java"
NestHost: jdk.internal.net.http.hpack.QuickHuffman
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
abstract BufferUpdateConsumer = jdk.internal.net.http.hpack.HPACK$BufferUpdateConsumer of jdk.internal.net.http.hpack.HPACK
public abstract Reader = jdk.internal.net.http.hpack.Huffman$Reader of jdk.internal.net.http.hpack.Huffman
abstract Node = jdk.internal.net.http.hpack.QuickHuffman$Node of jdk.internal.net.http.hpack.QuickHuffman
final Reader = jdk.internal.net.http.hpack.QuickHuffman$Reader of jdk.internal.net.http.hpack.QuickHuffman