final class com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook this
0: .line 1341
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$PolyglotShutDownHook;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=14, args_size=1
start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook this
0: .line 1345
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
dup
astore 2
monitorenter
1: .line 1346
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
iconst_0
anewarray com.oracle.truffle.polyglot.PolyglotEngineImpl
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl[]
astore 1 /* engines */
start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl[] engines
2: .line 1345
aload 2
monitorexit
3: goto 6
end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl[] engines
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook top java.util.Map
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl[] engines
6: .line 1348
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[]
StackMap stack:
aload 1 /* engines */
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 32
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] top int int com.oracle.truffle.polyglot.PolyglotEngineImpl[]
StackMap stack:
7: aload 5
iload 3
aaload
astore 2 /* engine */
start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
8: .line 1349
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
ifeq 29
9: .line 1350
getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 6 /* out */
start local 6 // java.io.PrintStream out
10: .line 1351
aload 6 /* out */
ldc "Missing close on vm shutdown: "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: .line 1352
aload 6 /* out */
ldc " InitializedLanguages:"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
12: .line 1353
aload 2 /* engine */
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 7
monitorenter
13: .line 1354
aload 2 /* engine */
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 22
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] com.oracle.truffle.polyglot.PolyglotEngineImpl int int com.oracle.truffle.polyglot.PolyglotEngineImpl[] java.io.PrintStream java.lang.Object top java.util.Iterator
StackMap stack:
14: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 8 /* context */
start local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl context
15: .line 1355
aload 8 /* context */
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 21
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] com.oracle.truffle.polyglot.PolyglotEngineImpl int int com.oracle.truffle.polyglot.PolyglotEngineImpl[] java.io.PrintStream java.lang.Object com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
16: aload 13
iload 11
aaload
astore 10 /* langContext */
start local 10 // com.oracle.truffle.polyglot.PolyglotLanguageContext langContext
17: .line 1356
aload 10 /* langContext */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnull 20
18: .line 1357
aload 6 /* out */
aload 10 /* langContext */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
19: .line 1358
aload 6 /* out */
ldc ", "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
end local 10 // com.oracle.truffle.polyglot.PolyglotLanguageContext langContext
20: .line 1355
StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
21: iload 11
iload 12
if_icmplt 16
end local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl context
22: .line 1354
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] com.oracle.truffle.polyglot.PolyglotEngineImpl int int com.oracle.truffle.polyglot.PolyglotEngineImpl[] java.io.PrintStream java.lang.Object top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
23: .line 1353
aload 7
monitorexit
24: goto 27
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] com.oracle.truffle.polyglot.PolyglotEngineImpl int int com.oracle.truffle.polyglot.PolyglotEngineImpl[] java.io.PrintStream java.lang.Object
StackMap stack: java.lang.Throwable
25: aload 7
monitorexit
26: athrow
27: .line 1363
StackMap locals:
StackMap stack:
aload 6 /* out */
invokevirtual java.io.PrintStream.println:()V
28: .line 1364
aload 2 /* engine */
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.createdLocation:Ljava/lang/Exception;
invokevirtual java.lang.Exception.printStackTrace:()V
end local 6 // java.io.PrintStream out
29: .line 1366
StackMap locals:
StackMap stack:
aload 2 /* engine */
ifnull 31
30: .line 1367
aload 2 /* engine */
iconst_0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
31: .line 1348
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl[] top int int com.oracle.truffle.polyglot.PolyglotEngineImpl[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
32: iload 3
iload 4
if_icmplt 7
33: .line 1370
return
end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl[] engines
end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook this
LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$PolyglotShutDownHook;
2 4 1 engines [Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
6 34 1 engines [Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
8 31 2 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
10 29 6 out Ljava/io/PrintStream;
15 22 8 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
17 20 10 langContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Exception table:
from to target type
1 3 4 any
4 5 4 any
13 24 25 any
25 26 25 any
}
SourceFile: "PolyglotEngineImpl.java"
NestHost: com.oracle.truffle.polyglot.PolyglotEngineImpl
InnerClasses:
private final PolyglotShutDownHook = com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook of com.oracle.truffle.polyglot.PolyglotEngineImpl