public class com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter extends com.oracle.truffle.api.instrumentation.test.EnableableInstrument implements com.oracle.truffle.api.instrumentation.AllocationListener
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter
super_class: com.oracle.truffle.api.instrumentation.test.EnableableInstrument
{
private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter> allocationEventBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;>;
private java.util.function.Consumer<com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo>[] allocationConsumers;
descriptor: [Ljava/util/function/Consumer;
flags: (0x0002) ACC_PRIVATE
Signature: [Ljava/util/function/Consumer<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$AllocationInfo;>;
private int consumersIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.EnableableInstrument.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
public void setEnabled(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 4
1: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
ldc "truffle-allocation-reporter-language"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 2
start local 2 2: aload 0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.AllocationEventFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter$Builder;
iconst_1
anewarray com.oracle.truffle.api.nodes.LanguageInfo
dup
iconst_0
aload 2
aastore
invokevirtual com.oracle.truffle.api.instrumentation.AllocationEventFilter$Builder.languages:([Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.AllocationEventFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachAllocationListener:(Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;Lcom/oracle/truffle/api/instrumentation/AllocationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationEventBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
end local 2 3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationEventBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
0 6 1 enabled Z
2 3 2 testLanguage Lcom/oracle/truffle/api/nodes/LanguageInfo;
MethodParameters:
Name Flags
enabled
final void setAllocationConsumers(java.util.function.Consumer<com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo>[]);
descriptor: ([Ljava/util/function/Consumer;)V
flags: (0x0090) ACC_FINAL, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
1: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationConsumers:[Ljava/util/function/Consumer;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
0 3 1 allocationConsumers [Ljava/util/function/Consumer;
Signature: ([Ljava/util/function/Consumer<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$AllocationInfo;>;)V
RuntimeVisibleAnnotations:
java.lang.SafeVarargs()
MethodParameters:
Name Flags
allocationConsumers
com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter> getAllocationEventBinding();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationEventBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
Signature: ()Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;>;
public void onEnter(com.oracle.truffle.api.instrumentation.AllocationEvent);
descriptor: (Lcom/oracle/truffle/api/instrumentation/AllocationEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationConsumers:[Ljava/util/function/Consumer;
aload 0
dup
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
dup_x1
iconst_1
iadd
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
aaload
astore 2
start local 2 1: aload 2
new com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo
dup
aload 1
iconst_1
invokespecial com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo.<init>:(Lcom/oracle/truffle/api/instrumentation/AllocationEvent;Z)V
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
0 3 1 event Lcom/oracle/truffle/api/instrumentation/AllocationEvent;
1 3 2 consumer Ljava/util/function/Consumer<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$AllocationInfo;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
event
public void onReturnValue(com.oracle.truffle.api.instrumentation.AllocationEvent);
descriptor: (Lcom/oracle/truffle/api/instrumentation/AllocationEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.allocationConsumers:[Ljava/util/function/Consumer;
aload 0
dup
getfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
dup_x1
iconst_1
iadd
putfield com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter.consumersIndex:I
aaload
astore 2
start local 2 1: aload 2
new com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo
dup
aload 1
iconst_0
invokespecial com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo.<init>:(Lcom/oracle/truffle/api/instrumentation/AllocationEvent;Z)V
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;
0 3 1 event Lcom/oracle/truffle/api/instrumentation/AllocationEvent;
1 3 2 consumer Ljava/util/function/Consumer<Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$AllocationInfo;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
event
}
SourceFile: "AllocationReporterTest.java"
NestHost: com.oracle.truffle.api.instrumentation.test.AllocationReporterTest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public Builder = com.oracle.truffle.api.instrumentation.AllocationEventFilter$Builder of com.oracle.truffle.api.instrumentation.AllocationEventFilter
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
public abstract Registration = com.oracle.truffle.api.instrumentation.TruffleInstrument$Registration of com.oracle.truffle.api.instrumentation.TruffleInstrument
private final AllocationInfo = com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$AllocationInfo of com.oracle.truffle.api.instrumentation.test.AllocationReporterTest
public TestAllocationReporter = com.oracle.truffle.api.instrumentation.test.AllocationReporterTest$TestAllocationReporter of com.oracle.truffle.api.instrumentation.test.AllocationReporterTest
RuntimeVisibleAnnotations:
com.oracle.truffle.api.instrumentation.TruffleInstrument$Registration(id = "testAllocationReporter", services = {Lcom/oracle/truffle/api/instrumentation/test/AllocationReporterTest$TestAllocationReporter;})