final class io.netty.handler.codec.http2.HpackDynamicTable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.http2.HpackDynamicTable
super_class: java.lang.Object
{
io.netty.handler.codec.http2.HpackHeaderField[] hpackHeaderFields;
descriptor: [Lio/netty/handler/codec/http2/HpackHeaderField;
flags: (0x0000)
int head;
descriptor: I
flags: (0x0000)
int tail;
descriptor: I
flags: (0x0000)
private long size;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long capacity;
descriptor: J
flags: (0x0002) ACC_PRIVATE
void <init>(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc -1
putfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
2: aload 0
lload 1
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.setCapacity:(J)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
0 4 1 initialCapacity J
MethodParameters:
Name Flags
initialCapacity
public int length();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
if_icmpge 3
1: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
isub
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
iadd
istore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
isub
istore 1
start local 1 4: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
2 3 1 length I
4 5 1 length I
public long size();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
public long capacity();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
public io.netty.handler.codec.http2.HpackHeaderField getEntry(int);
descriptor: (I)Lio/netty/handler/codec/http2/HpackHeaderField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifle 1
iload 1
aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.length:()I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
iload 1
isub
istore 2
start local 2 3: iload 2
ifge 5
4: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
iload 2
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
iadd
aaload
areturn
5: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
iload 2
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
0 6 1 index I
3 6 2 i I
MethodParameters:
Name Flags
index
public void add(io.netty.handler.codec.http2.HpackHeaderField);
descriptor: (Lio/netty/handler/codec/http2/HpackHeaderField;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.netty.handler.codec.http2.HpackHeaderField.size:()I
istore 2
start local 2 1: iload 2
i2l
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
lcmp
ifle 5
2: aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.clear:()V
3: return
4: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.remove:()Lio/netty/handler/codec/http2/HpackHeaderField;
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
lsub
iload 2
i2l
lcmp
iflt 4
6: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
aload 0
dup
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
dup_x1
iconst_1
iadd
putfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
aload 1
aastore
7: aload 0
dup
getfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
aload 1
invokevirtual io.netty.handler.codec.http2.HpackHeaderField.size:()I
i2l
ladd
putfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
8: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
if_icmpne 10
9: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
0 11 1 header Lio/netty/handler/codec/http2/HpackHeaderField;
1 11 2 headerSize I
MethodParameters:
Name Flags
header
public io.netty.handler.codec.http2.HpackHeaderField remove();
descriptor: ()Lio/netty/handler/codec/http2/HpackHeaderField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aaload
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: io.netty.handler.codec.http2.HpackHeaderField
StackMap stack:
aload 0
dup
getfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
aload 1
invokevirtual io.netty.handler.codec.http2.HpackHeaderField.size:()I
i2l
lsub
putfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
4: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
aload 0
dup
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
dup_x1
iconst_1
iadd
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aconst_null
aastore
5: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
if_icmpne 7
6: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
1 8 1 removed Lio/netty/handler/codec/http2/HpackHeaderField;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: goto 4
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
aload 0
dup
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
dup_x1
iconst_1
iadd
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aconst_null
aastore
2: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
if_icmpne 4
3: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
if_icmpne 1
5: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
6: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
7: aload 0
lconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
public void setCapacity(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
iflt 1
lload 1
ldc 4294967295
lcmp
ifle 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "capacity is invalid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
lload 1
lcmp
ifne 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield io.netty.handler.codec.http2.HpackDynamicTable.capacity:J
5: lload 1
lconst_0
lcmp
ifne 9
6: aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.clear:()V
7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.remove:()Lio/netty/handler/codec/http2/HpackHeaderField;
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.size:J
lload 1
lcmp
ifgt 8
10: StackMap locals:
StackMap stack:
lload 1
ldc 32
ldiv
l2i
istore 3
start local 3 11: lload 1
ldc 32
lrem
lconst_0
lcmp
ifeq 13
12: iinc 3 1
13: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
ifnull 15
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
iload 3
if_icmpne 15
14: return
15: StackMap locals:
StackMap stack:
iload 3
anewarray io.netty.handler.codec.http2.HpackHeaderField
astore 4
start local 4 16: aload 0
invokevirtual io.netty.handler.codec.http2.HpackDynamicTable.length:()I
istore 5
start local 5 17: aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
istore 6
start local 6 18: iconst_0
istore 7
start local 7 19: goto 25
20: StackMap locals: io.netty.handler.codec.http2.HpackDynamicTable long int io.netty.handler.codec.http2.HpackHeaderField[] int int int
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
iload 6
iinc 6 1
aaload
astore 8
start local 8 21: aload 4
iload 7
aload 8
aastore
22: iload 6
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
arraylength
if_icmpne 24
23: iconst_0
istore 6
end local 8 24: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
25: iload 7
iload 5
if_icmplt 20
end local 7 26: aload 0
iconst_0
putfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
27: aload 0
aload 0
getfield io.netty.handler.codec.http2.HpackDynamicTable.tail:I
iload 5
iadd
putfield io.netty.handler.codec.http2.HpackDynamicTable.head:I
28: aload 0
aload 4
putfield io.netty.handler.codec.http2.HpackDynamicTable.hpackHeaderFields:[Lio/netty/handler/codec/http2/HpackHeaderField;
29: return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lio/netty/handler/codec/http2/HpackDynamicTable;
0 30 1 capacity J
11 30 3 maxEntries I
16 30 4 tmp [Lio/netty/handler/codec/http2/HpackHeaderField;
17 30 5 len I
18 30 6 cursor I
19 26 7 i I
21 24 8 entry Lio/netty/handler/codec/http2/HpackHeaderField;
MethodParameters:
Name Flags
capacity
}
SourceFile: "HpackDynamicTable.java"