public final class com.oracle.truffle.api.test.GCUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.test.GCUtils
super_class: java.lang.Object
{
public static final int GC_TEST_ITERATIONS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 15
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new java.lang.IllegalStateException
dup
ldc "No instance allowed."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/GCUtils;
public static void assertObjectsCollectible(java.util.function.Function<java.lang.Integer, java.lang.Object>);
descriptor: (Ljava/util/function/Function;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: java.lang.ref.ReferenceQueue java.util.List int
StackMap stack:
aload 2
new java.lang.ref.WeakReference
dup
aload 0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: invokestatic java.lang.System.gc:()V
6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
bipush 15
if_icmplt 4
end local 3 8: aload 2
invokestatic com.oracle.truffle.api.test.GCUtils$IsFreed.anyOf:(Ljava/util/Collection;)Lcom/oracle/truffle/api/test/GCUtils$IsFreed;
iconst_1
invokestatic com.oracle.truffle.api.test.GCUtils.gc:(Ljava/util/function/BooleanSupplier;Z)Z
pop
9: iconst_0
istore 3
start local 3 10: goto 12
11: StackMap locals:
StackMap stack:
iinc 3 1
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
ifnonnull 11
13: iload 3
ifle 14
iconst_1
goto 15
StackMap locals:
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: invokestatic org.junit.Assert.assertTrue:(Z)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 objectFactory Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Object;>;
1 17 1 queue Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;
2 17 2 collectibleObjects Ljava/util/List<Ljava/lang/ref/WeakReference<Ljava/lang/Object;>;>;
3 8 3 i I
10 17 3 refsCleared I
Signature: (Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
objectFactory
public static void assertGc(java.lang.String, java.lang.ref.Reference<?>);
descriptor: (Ljava/lang/String;Ljava/lang/ref/Reference;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokestatic com.oracle.truffle.api.test.GCUtils$IsFreed.allOf:(Ljava/util/Collection;)Lcom/oracle/truffle/api/test/GCUtils$IsFreed;
iconst_1
invokestatic com.oracle.truffle.api.test.GCUtils.gc:(Ljava/util/function/BooleanSupplier;Z)Z
ifne 2
1: aload 0
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 message Ljava/lang/String;
0 3 1 ref Ljava/lang/ref/Reference<*>;
Signature: (Ljava/lang/String;Ljava/lang/ref/Reference<*>;)V
MethodParameters:
Name Flags
message final
ref final
public static void assertNotGc(java.lang.String, java.lang.ref.Reference<?>);
descriptor: (Ljava/lang/String;Ljava/lang/ref/Reference;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokestatic com.oracle.truffle.api.test.GCUtils$IsFreed.allOf:(Ljava/util/Collection;)Lcom/oracle/truffle/api/test/GCUtils$IsFreed;
iconst_0
invokestatic com.oracle.truffle.api.test.GCUtils.gc:(Ljava/util/function/BooleanSupplier;Z)Z
ifeq 2
1: aload 0
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 message Ljava/lang/String;
0 3 1 ref Ljava/lang/ref/Reference<*>;
Signature: (Ljava/lang/String;Ljava/lang/ref/Reference<*>;)V
MethodParameters:
Name Flags
message final
ref final
private static boolean gc(java.util.function.BooleanSupplier, boolean);
descriptor: (Ljava/util/function/BooleanSupplier;Z)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: ldc 100000
istore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 24
4: StackMap locals: int java.util.List int
StackMap stack:
aload 0
invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
invokestatic java.lang.System.gc:()V
7: goto 9
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
8: pop
9: StackMap locals:
StackMap stack:
invokestatic java.lang.System.runFinalization:()V
10: goto 12
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
11: pop
12: StackMap locals:
StackMap stack:
iload 1
ifeq 18
13: aload 3
iload 2
newarray 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: iload 2
i2d
ldc 1.3
dmul
d2i
istore 2
15: goto 18
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
16: pop
17: iload 2
iconst_1
iushr
istore 2
18: StackMap locals:
StackMap stack:
iload 4
bipush 10
irem
ifne 23
19: ldc 500
invokestatic java.lang.Thread.sleep:(J)V
20: goto 23
StackMap locals:
StackMap stack: java.lang.InterruptedException
21: pop
22: goto 25
23: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
24: iload 4
bipush 50
if_icmplt 4
end local 4 25: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 isFreed Ljava/util/function/BooleanSupplier;
0 26 1 performAllocations Z
1 26 2 blockSize I
2 26 3 blocks Ljava/util/List<[B>;
3 25 4 i I
Exception table:
from to target type
6 7 8 Class java.lang.OutOfMemoryError
9 10 11 Class java.lang.OutOfMemoryError
13 15 16 Class java.lang.OutOfMemoryError
19 20 21 Class java.lang.InterruptedException
MethodParameters:
Name Flags
isFreed
performAllocations
}
SourceFile: "GCUtils.java"
NestMembers:
com.oracle.truffle.api.test.GCUtils$IsFreed com.oracle.truffle.api.test.GCUtils$IsFreed$Operator
InnerClasses:
private final IsFreed = com.oracle.truffle.api.test.GCUtils$IsFreed of com.oracle.truffle.api.test.GCUtils