class com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode 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$OtherRewritingNode
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, 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$OtherRewritingNode this
start local 1 // com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode child
start local 2 // java.util.Random random
0: .line 162
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.ThreadSafetyTest$ValueNode.<init>:()V
1: .line 163
aload 0 /* this */
aload 1 /* child */
putfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.child:Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
2: .line 164
aload 0 /* this */
aload 2 /* random */
putfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.random:Ljava/util/Random;
3: .line 165
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$OtherRewritingNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/ThreadSafetyTest$OtherRewritingNode;
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$OtherRewritingNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 169
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.random:Ljava/util/Random;
invokevirtual java.util.Random.nextBoolean:()Z
istore 2 /* replace */
start local 2 // boolean replace
1: .line 170
iload 2 /* replace */
ifeq 4
2: .line 171
aload 0 /* this */
new com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode
dup
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.child:Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.random:Ljava/util/Random;
invokespecial com.oracle.truffle.api.test.ThreadSafetyTest$RewritingNode.<init>:(Lcom/oracle/truffle/api/test/ThreadSafetyTest$ValueNode;Ljava/util/Random;)V
invokevirtual com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.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 172
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 174
StackMap locals: int
StackMap stack:
iconst_1
aload 0 /* this */
getfield com.oracle.truffle.api.test.ThreadSafetyTest$OtherRewritingNode.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$OtherRewritingNode this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/ThreadSafetyTest$OtherRewritingNode;
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