class com.oracle.truffle.api.debug.DebuggerNode$3 implements java.util.concurrent.Callable<java.lang.Boolean>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.debug.DebuggerNode$3
super_class: java.lang.Object
{
final com.oracle.truffle.api.debug.DebuggerNode this$0;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerNode;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final com.oracle.truffle.api.debug.DebuggerSession val$session;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.DebuggerSession);
descriptor: (Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/DebuggerSession;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
aload 0
aload 2
putfield com.oracle.truffle.api.debug.DebuggerNode$3.val$session:Lcom/oracle/truffle/api/debug/DebuggerSession;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerNode$3;
MethodParameters:
Name Flags
this$0 final
val$session final
public java.lang.Boolean call();
descriptor: ()Ljava/lang/Boolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
ifnull 42
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 3: aload 2
aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.val$session:Lcom/oracle/truffle/api/debug/DebuggerSession;
if_acmpne 13
4: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 6
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.isEmpty:()Z
ifeq 12
7: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
aconst_null
putfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
8: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerNode.singleThreadSession:Z
9: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.cachedSessionDuplicate:Lcom/oracle/truffle/api/debug/DebuggerSession;
ifnonnull 12
10: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
lconst_0
putfield com.oracle.truffle.api.debug.DebuggerNode.cachedThreadId:J
11: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No duplicate node assumption"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerNode.noDuplicateAssumption:Lcom/oracle/truffle/api/Assumption;
12: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3 java.lang.Thread java.lang.Object top top top java.lang.Boolean
StackMap stack:
aload 6
areturn
13: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3 java.lang.Thread java.lang.Object
StackMap stack:
aload 2
instanceof org.graalvm.collections.EconomicSet
ifeq 36
14: aload 2
checkcast org.graalvm.collections.EconomicSet
astore 3
start local 3 15: aload 3
aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.val$session:Lcom/oracle/truffle/api/debug/DebuggerSession;
invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
istore 4
start local 4 16: iload 4
ifeq 20
17: aload 3
aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.val$session:Lcom/oracle/truffle/api/debug/DebuggerSession;
invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
18: aload 3
invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
ifeq 20
19: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
pop
20: StackMap locals: org.graalvm.collections.EconomicSet int
StackMap stack:
iload 4
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 6
21: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.isEmpty:()Z
ifeq 27
22: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
aconst_null
putfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
23: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerNode.singleThreadSession:Z
24: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.cachedSessionDuplicate:Lcom/oracle/truffle/api/debug/DebuggerSession;
ifnonnull 27
25: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
lconst_0
putfield com.oracle.truffle.api.debug.DebuggerNode.cachedThreadId:J
26: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No duplicate node assumption"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerNode.noDuplicateAssumption:Lcom/oracle/truffle/api/Assumption;
27: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3 java.lang.Thread java.lang.Object org.graalvm.collections.EconomicSet int top java.lang.Boolean
StackMap stack:
aload 6
areturn
end local 4 end local 3 end local 2 end local 1 28: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3
StackMap stack: java.lang.Throwable
astore 5
29: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.isEmpty:()Z
ifeq 35
30: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
aconst_null
putfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
31: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerNode.singleThreadSession:Z
32: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.cachedSessionDuplicate:Lcom/oracle/truffle/api/debug/DebuggerSession;
ifnonnull 35
33: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
lconst_0
putfield com.oracle.truffle.api.debug.DebuggerNode.cachedThreadId:J
34: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No duplicate node assumption"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerNode.noDuplicateAssumption:Lcom/oracle/truffle/api/Assumption;
35: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3 top top top top java.lang.Throwable
StackMap stack:
aload 5
athrow
36: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode$3
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.isEmpty:()Z
ifeq 42
37: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
aconst_null
putfield com.oracle.truffle.api.debug.DebuggerNode.duplicateInThreads:Lorg/graalvm/collections/EconomicMap;
38: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerNode.singleThreadSession:Z
39: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
getfield com.oracle.truffle.api.debug.DebuggerNode.cachedSessionDuplicate:Lcom/oracle/truffle/api/debug/DebuggerSession;
ifnonnull 42
40: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
lconst_0
putfield com.oracle.truffle.api.debug.DebuggerNode.cachedThreadId:J
41: aload 0
getfield com.oracle.truffle.api.debug.DebuggerNode$3.this$0:Lcom/oracle/truffle/api/debug/DebuggerNode;
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No duplicate node assumption"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerNode.noDuplicateAssumption:Lcom/oracle/truffle/api/Assumption;
42: StackMap locals:
StackMap stack:
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/oracle/truffle/api/debug/DebuggerNode$3;
2 28 1 thread Ljava/lang/Thread;
3 28 2 sessions Ljava/lang/Object;
15 28 3 set Lorg/graalvm/collections/EconomicSet<Lcom/oracle/truffle/api/debug/DebuggerSession;>;
16 28 4 contains Z
Exception table:
from to target type
1 6 28 any
13 21 28 any
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerNode$3.call:()Ljava/lang/Boolean;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/Boolean;>;
SourceFile: "DebuggerNode.java"
EnclosingMethod: com.oracle.truffle.api.debug.DebuggerNode.isDuplicateSlowPath:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Z
NestHost: com.oracle.truffle.api.debug.DebuggerNode
InnerClasses:
com.oracle.truffle.api.debug.DebuggerNode$3