final class <E>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer
super_class: java.lang.Object
{
int ;
descriptor: I
flags: (0x0000)
int ;
descriptor: I
flags: (0x0000)
int ;
descriptor: I
flags: (0x0000)
int ;
descriptor: I
flags: (0x0000)
java.lang.Object[] ;
descriptor: [Ljava/lang/Object;
flags: (0x0000)
void (int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
invokestatic jdk.internal.net.http.common.Utils.pow2Size:(I)I
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
2: aload 0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
anewarray java.lang.Object
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/hpack/SimpleHeaderTable$CircularBuffer<TE;>;
0 4 1 capacity I
MethodParameters:
Name Flags
capacity
void add();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
if_icmpne 4
1: new java.lang.IllegalStateException
dup
2: ldc "No room for '%s': capacity=%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
aload 1
aastore
5: aload 0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
iconst_1
iadd
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
iconst_1
isub
iand
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
6: aload 0
dup
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
iconst_1
iadd
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/hpack/SimpleHeaderTable$CircularBuffer<TE;>;
0 8 1 elem TE;
Signature: (TE;)V
MethodParameters:
Name Flags
elem
E remove();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
ifne 2
1: new java.util.NoSuchElementException
dup
ldc "Empty"
invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aaload
astore 1
start local 1 3: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aconst_null
aastore
4: aload 0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
iconst_1
iadd
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
iconst_1
isub
iand
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
5: aload 0
dup
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
iconst_1
isub
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/hpack/SimpleHeaderTable$CircularBuffer<TE;>;
3 7 1 elem TE;
Signature: ()TE;
E get();
descriptor: (I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
if_icmplt 6
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
2: ldc "0 <= index <= capacity: index=%s, capacity=%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
3: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
5: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
iload 1
isub
iconst_1
isub
iadd
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
iconst_1
isub
iand
istore 2
start local 2 7: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
iload 2
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/hpack/SimpleHeaderTable$CircularBuffer<TE;>;
0 8 1 index I
7 8 2 idx I
Signature: (I)TE;
MethodParameters:
Name Flags
index
public void (int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
if_icmpge 6
1: new java.lang.IllegalStateException
dup
2: ldc "newCapacity >= size: newCapacity=%s, size=%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
3: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
5: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 1
invokestatic jdk.internal.net.http.common.Utils.pow2Size:(I)I
istore 2
start local 2 7: iload 2
anewarray java.lang.Object
astore 3
start local 3 8: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
if_icmplt 9
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
ifne 11
9: StackMap locals: int java.lang.Object[]
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aload 3
iconst_0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: goto 13
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
aload 3
iconst_0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
arraylength
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
iconst_0
aload 3
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
arraylength
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
isub
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.elements:[Ljava/lang/Object;
14: aload 0
iconst_0
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.tail:I
15: aload 0
aload 0
getfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.size:I
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.head:I
16: aload 0
iload 2
putfield jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer.capacity:I
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/internal/net/http/hpack/SimpleHeaderTable$CircularBuffer<TE;>;
0 18 1 newCapacity I
7 18 2 capacity I
8 18 3 newElements [Ljava/lang/Object;
MethodParameters:
Name Flags
newCapacity
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "SimpleHeaderTable.java"
NestHost: jdk.internal.net.http.hpack.SimpleHeaderTable
InnerClasses:
final CircularBuffer = jdk.internal.net.http.hpack.SimpleHeaderTable$CircularBuffer of jdk.internal.net.http.hpack.SimpleHeaderTable