abstract class com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection<T, R> extends java.util.AbstractCollection<R>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection
super_class: java.util.AbstractCollection
{
private volatile java.util.concurrent.atomic.AtomicReferenceArray<T> values;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceArray;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/concurrent/atomic/AtomicReferenceArray<TT;>;
private int nextInsertionIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
protected final int initialCapacity;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.AbstractCollection.<init>:()V
1: iload 1
ifgt 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid initial capacity "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection int
StackMap stack:
aload 0
new java.util.concurrent.atomic.AtomicReferenceArray
dup
iload 1
invokespecial java.util.concurrent.atomic.AtomicReferenceArray.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
4: aload 0
iload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.initialCapacity:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
0 6 1 initialCapacity I
MethodParameters:
Name Flags
initialCapacity
public final synchronized void clear();
descriptor: ()V
flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new java.util.concurrent.atomic.AtomicReferenceArray
dup
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.initialCapacity:I
invokespecial java.util.concurrent.atomic.AtomicReferenceArray.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
1: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
public final synchronized boolean add();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.wrap:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 5
4: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.compact:()V
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
aload 0
dup
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
dup_x1
iconst_1
iadd
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
0 7 1 reference TR;
1 7 2 wrappedElement TT;
Signature: (TR;)Z
MethodParameters:
Name Flags
reference
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
public final boolean isEmpty();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
protected abstract T wrap();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (TR;)TT;
MethodParameters:
Name Flags
element
protected abstract R unwrap();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (TT;)TR;
MethodParameters:
Name Flags
element
private void compact();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 10
4: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
aload 1
iload 3
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
astore 4
start local 4 5: aload 4
ifnonnull 7
6: goto 11
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 9
8: iinc 2 1
end local 4 9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 4
end local 3 11: StackMap locals:
StackMap stack:
new java.util.concurrent.atomic.AtomicReferenceArray
dup
iload 2
iconst_2
imul
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.initialCapacity:I
invokestatic java.lang.Math.max:(II)I
invokespecial java.util.concurrent.atomic.AtomicReferenceArray.<init>:(I)V
astore 3
start local 3 12: iconst_0
istore 4
start local 4 13: iconst_0
istore 5
start local 5 14: goto 21
15: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
aload 1
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
astore 6
start local 6 16: aload 6
ifnonnull 18
17: goto 22
18: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 20
19: aload 3
iload 4
iinc 4 1
aload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 15
end local 5 22: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
23: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.values:Ljava/util/concurrent/atomic/AtomicReferenceArray;
24: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
1 25 1 localValues Ljava/util/concurrent/atomic/AtomicReferenceArray<TT;>;
2 25 2 liveElements I
3 11 3 i I
5 9 4 ref TT;
12 25 3 newValues Ljava/util/concurrent/atomic/AtomicReferenceArray<TT;>;
13 25 4 index I
14 22 5 i I
16 20 6 ref TT;
public java.util.Iterator<R> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection$1
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection$1.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
Signature: ()Ljava/util/Iterator<TR;>;
int getNextInsertionIndex();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection.nextInsertionIndex:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractAsyncCollection<TT;TR;>;
}
Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/util/AbstractCollection<TR;>;
SourceFile: "InstrumentationHandler.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentationHandler
InnerClasses:
private abstract AbstractAsyncCollection = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection of com.oracle.truffle.api.instrumentation.InstrumentationHandler
com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection$1