class com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode extends com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode
super_class: com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode
{
private com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child;
descriptor: Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode);
descriptor: (Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
start local 1 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child
0: .line 138
aload 0 /* this */
aload 1 /* child */
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
invokespecial com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.<init>:(Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;Ljava/util/Random;)V
1: .line 139
return
end local 1 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child
end local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/ThreadSafetyTest$RewritingNode;
0 2 1 child Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
MethodParameters:
Name Flags
child
void <init>(com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode, java.util.Random);
descriptor: (Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;Ljava/util/Random;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
start local 1 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child
start local 2 // java.util.Random random
0: .line 141
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode.<init>:()V
1: .line 142
aload 0 /* this */
aload 1 /* child */
putfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.child:Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
2: .line 143
aload 0 /* this */
aload 2 /* random */
putfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.random:Ljava/util/Random;
3: .line 144
return
end local 2 // java.util.Random random
end local 1 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child
end local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/ThreadSafetyTest$RewritingNode;
0 4 1 child Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
0 4 2 random Ljava/util/Random;
MethodParameters:
Name Flags
child
random
int execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 148
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.random:Ljava/util/Random;
invokevirtual java.util.Random.nextBoolean:()Z
istore 2 /* replace */
start local 2 // boolean replace
1: .line 149
iload 2 /* replace */
ifeq 4
2: .line 150
aload 0 /* this */
new com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode
dup
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.child:Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.random:Ljava/util/Random;
invokespecial com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.<init>:(Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;Ljava/util/Random;)V
invokevirtual com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.replace:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode
astore 3 /* newNode */
start local 3 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode newNode
3: .line 151
aload 3 /* newNode */
aload 1 /* frame */
invokevirtual com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
ireturn
end local 3 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode newNode
4: .line 153
StackMap locals: int
StackMap stack:
iconst_1
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.child:Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
aload 1 /* frame */
invokevirtual com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
iadd
ireturn
end local 2 // boolean replace
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/ThreadSafetyTest$RewritingNode;
0 5 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 5 2 replace Z
3 4 3 newNode Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
MethodParameters:
Name Flags
frame
}
SourceFile: "ThreadSafetyTest.java"
NestHost: com.oracle.truffle.api.test.ThreadSafetyTest
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
OtherRewritingNode = com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode of com.oracle.truffle.api.test.ThreadSafetyTest
RewritingNode = com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode of com.oracle.truffle.api.test.ThreadSafetyTest
abstract ValueNode = com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode of com.oracle.truffle.api.test.ThreadSafetyTest