final class com.oracle.truffle.polyglot.HostAdapterFactory
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.HostAdapterFactory
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/HostAdapterFactory;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.polyglot.HostAdapterFactory.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: 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/polyglot/HostAdapterFactory;
static com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult getAdapterClassFor(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.HostLanguage$HostContext, java.lang.Class<?>[], );
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;[Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.polyglot.HostAdapterFactory.$assertionsDisabled:Z
ifne 1
aload 2
arraylength
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getHostClassCache:()Lcom/oracle/truffle/polyglot/HostClassCache;
astore 4
start local 4 2: aload 1
invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.getClassloader:()Lcom/oracle/truffle/polyglot/HostClassLoader;
astore 5
start local 5 3: aload 3
ifnonnull 17
4: aload 2
arraylength
iconst_1
if_icmpne 7
5: aload 0
aload 2
iconst_0
aaload
invokestatic com.oracle.truffle.polyglot.HostClassDesc.forClass:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/HostClassDesc;
astore 6
start local 6 6: aload 6
aload 1
invokevirtual com.oracle.truffle.polyglot.HostClassDesc.getAdapter:(Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
areturn
end local 6 7: StackMap locals: com.oracle.truffle.polyglot.HostClassCache com.oracle.truffle.polyglot.HostClassLoader
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.adapterCache:Ljava/lang/ClassValue;
aload 2
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.getTypeForCache:([Ljava/lang/Class;)Ljava/lang/Class;
invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.Map
astore 6
start local 6 8: aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 9: aload 6
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
astore 8
start local 8 10: aload 8
ifnonnull 16
11: aload 4
aload 2
aload 5
aload 3
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.makeAdapterClassFor:(Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
astore 8
12: aload 8
invokevirtual com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.isSuccess:()Z
ifeq 16
13: aload 6
aload 7
aload 8
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
astore 9
start local 9 14: aload 9
ifnull 16
15: aload 9
astore 8
end local 9 16: StackMap locals: java.util.Map java.util.List com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
StackMap stack:
aload 8
areturn
end local 8 end local 7 end local 6 17: StackMap locals:
StackMap stack:
aload 4
aload 2
aload 5
aload 3
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.makeAdapterClassFor:(Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 18 1 hostContext Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
0 18 2 types [Ljava/lang/Class;
0 18 3 classOverrides Ljava/lang/Object;
2 18 4 hostClassCache Lcom/oracle/truffle/polyglot/HostClassCache;
3 18 5 hostClassLoader Lcom/oracle/truffle/polyglot/HostClassLoader;
6 7 6 classDesc Lcom/oracle/truffle/polyglot/HostClassDesc;
8 17 6 map Ljava/util/Map<Ljava/util/List<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;>;
9 17 7 cacheKey Ljava/util/List<Ljava/lang/Class<*>;>;
10 17 8 result Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
14 16 9 prev Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;[Ljava/lang/Class<*>;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
engine
hostContext
types
classOverrides
static com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult makeAdapterClassFor(com.oracle.truffle.polyglot.HostClassCache, java.lang.Class<?>[], java.lang.ClassLoader, );
descriptor: (Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.makeAdapterClassForCommon:(Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hostClassCache Lcom/oracle/truffle/polyglot/HostClassCache;
0 1 1 types [Ljava/lang/Class;
0 1 2 classLoader Ljava/lang/ClassLoader;
0 1 3 classOverrides Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class<*>;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
hostClassCache
types
classLoader
classOverrides
static com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult makeAdapterClassFor(com.oracle.truffle.polyglot.HostClassCache, java.lang.Class<?>, java.lang.ClassLoader);
descriptor: (Lcom/oracle/truffle/polyglot/HostClassCache;Ljava/lang/Class;Ljava/lang/ClassLoader;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
aload 2
aconst_null
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.makeAdapterClassForCommon:(Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hostClassCache Lcom/oracle/truffle/polyglot/HostClassCache;
0 1 1 type Ljava/lang/Class<*>;
0 1 2 classLoader Ljava/lang/ClassLoader;
Signature: (Lcom/oracle/truffle/polyglot/HostClassCache;Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
hostClassCache
type
classLoader
private static com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult makeAdapterClassForCommon(com.oracle.truffle.polyglot.HostClassCache, java.lang.Class<?>[], java.lang.ClassLoader, );
descriptor: (Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.polyglot.HostAdapterFactory.$assertionsDisabled:Z
ifne 1
aload 1
arraylength
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
2: aconst_null
astore 4
start local 4 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 4: aload 1
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 24
StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List top int int java.lang.Class[]
StackMap stack:
5: aload 9
iload 7
aaload
astore 6
start local 6 6: aload 6
invokevirtual java.lang.Class.isInterface:()Z
ifne 16
7: aload 4
ifnull 12
8: ldc "Can not extend multiple classes %s and %s. At most one of the specified types can be a class, the rest must all be interfaces."
iconst_2
anewarray java.lang.Object
dup
iconst_0
9: aload 6
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 4
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
aastore
10: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
11: invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
12: StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List java.lang.Class int int java.lang.Class[]
StackMap stack:
aload 6
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
ifeq 14
13: ldc "Can not extend final class %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
14: StackMap locals:
StackMap stack:
aload 6
astore 4
15: goto 19
16: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.List.size:()I
ldc 65535
if_icmplt 18
17: ldc "interface limit exceeded"
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
18: StackMap locals:
StackMap stack:
aload 5
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 21
20: ldc "Class not public: %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
21: StackMap locals:
StackMap stack:
aload 6
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isExtensibleType:(Ljava/lang/Class;)Z
ifeq 22
aload 0
aload 6
invokevirtual com.oracle.truffle.polyglot.HostClassCache.allowsImplementation:(Ljava/lang/Class;)Z
ifne 23
22: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Implementation not allowed for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 6 23: StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List top int int java.lang.Class[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
24: iload 7
iload 8
if_icmplt 5
25: aload 4
ifnull 26
aload 4
goto 27
StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List
StackMap stack:
26: ldc Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Class
27: astore 4
28: aload 2
aload 4
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.getCommonClassLoader:(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/ClassLoader;
astore 6
start local 6 29: aload 6
aload 1
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.classLoaderCanSee:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Z
ifne 31
30: new java.lang.StringBuilder
dup
ldc "Could not determine a class loader that can see all types: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
31: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 4
aload 5
aload 6
aload 0
aload 3
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.generateAdapterClassFor:(Ljava/lang/Class;Ljava/util/List;Ljava/lang/ClassLoader;Lcom/oracle/truffle/polyglot/HostClassCache;Ljava/lang/Object;)Ljava/lang/Class;
astore 7
start local 7 32: goto 37
end local 7 StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
33: astore 8
start local 8 34: new com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
dup
aload 8
invokespecial com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineException;)V
areturn
end local 8 35: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 8
start local 8 36: new com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
dup
aload 8
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/IllegalArgumentException;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
invokespecial com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineException;)V
areturn
end local 8 start local 7 37: StackMap locals: java.lang.Class
StackMap stack:
aload 0
aload 7
invokevirtual com.oracle.truffle.polyglot.HostClassCache.forClass:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/HostClassDesc;
astore 8
start local 8 38: aload 8
invokevirtual com.oracle.truffle.polyglot.HostClassDesc.lookupConstructor:()Lcom/oracle/truffle/polyglot/HostMethodDesc;
astore 9
start local 9 39: aconst_null
astore 10
start local 10 40: aload 9
ifnull 49
41: aload 9
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc.getOverloads:()[Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 47
StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List java.lang.ClassLoader java.lang.Class com.oracle.truffle.polyglot.HostClassDesc com.oracle.truffle.polyglot.HostMethodDesc com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod top int int com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[]
StackMap stack:
42: aload 14
iload 12
aaload
astore 11
start local 11 43: aload 11
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
iconst_1
if_icmpne 46
aload 11
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
iconst_0
aaload
ldc Lorg/graalvm/polyglot/Value;
if_acmpne 46
44: aload 11
astore 10
45: goto 48
end local 11 46: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
47: iload 12
iload 13
if_icmplt 42
48: StackMap locals: com.oracle.truffle.polyglot.HostClassCache java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class java.util.List java.lang.ClassLoader java.lang.Class com.oracle.truffle.polyglot.HostClassDesc com.oracle.truffle.polyglot.HostMethodDesc com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
StackMap stack:
new com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
dup
aload 7
aload 9
aload 10
invokespecial com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/HostMethodDesc;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;)V
areturn
49: StackMap locals:
StackMap stack:
new com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
dup
new java.lang.StringBuilder
dup
ldc "No accessible constructor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
invokespecial com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineException;)V
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 hostClassCache Lcom/oracle/truffle/polyglot/HostClassCache;
0 50 1 types [Ljava/lang/Class;
0 50 2 classLoader Ljava/lang/ClassLoader;
0 50 3 classOverrides Ljava/lang/Object;
3 50 4 superClass Ljava/lang/Class<*>;
4 50 5 interfaces Ljava/util/List<Ljava/lang/Class<*>;>;
6 23 6 t Ljava/lang/Class<*>;
29 50 6 commonLoader Ljava/lang/ClassLoader;
32 33 7 adapterClass Ljava/lang/Class<*>;
37 50 7 adapterClass Ljava/lang/Class<*>;
34 35 8 ex Lcom/oracle/truffle/polyglot/PolyglotEngineException;
36 37 8 ex Ljava/lang/IllegalArgumentException;
38 50 8 classDesc Lcom/oracle/truffle/polyglot/HostClassDesc;
39 50 9 constructor Lcom/oracle/truffle/polyglot/HostMethodDesc;
40 50 10 valueConstructor Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
43 46 11 overload Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
Exception table:
from to target type
31 32 33 Class com.oracle.truffle.polyglot.PolyglotEngineException
31 32 35 Class java.lang.IllegalArgumentException
Signature: (Lcom/oracle/truffle/polyglot/HostClassCache;[Ljava/lang/Class<*>;Ljava/lang/ClassLoader;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
MethodParameters:
Name Flags
hostClassCache
types
classLoader
classOverrides
private static java.lang.Class<?> generateAdapterClassFor(java.lang.Class<?>, java.util.List<java.lang.Class<?>>, java.lang.ClassLoader, com.oracle.truffle.polyglot.HostClassCache, );
descriptor: (Ljava/lang/Class;Ljava/util/List;Ljava/lang/ClassLoader;Lcom/oracle/truffle/polyglot/HostClassCache;Ljava/lang/Object;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 5
start local 5 3: new com.oracle.truffle.polyglot.HostAdapterBytecodeGenerator
dup
aload 0
aload 1
aload 2
aload 3
iload 5
invokespecial com.oracle.truffle.polyglot.HostAdapterBytecodeGenerator.<init>:(Ljava/lang/Class;Ljava/util/List;Ljava/lang/ClassLoader;Lcom/oracle/truffle/polyglot/HostClassCache;Z)V
astore 6
start local 6 4: aload 6
invokevirtual com.oracle.truffle.polyglot.HostAdapterBytecodeGenerator.createAdapterClassLoader:()Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
astore 7
start local 7 5: aload 7
aload 2
aload 4
invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader.generateClass:(Ljava/lang/ClassLoader;Ljava/lang/Object;)Ljava/lang/Class;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 superClass Ljava/lang/Class<*>;
0 6 1 interfaces Ljava/util/List<Ljava/lang/Class<*>;>;
0 6 2 commonLoader Ljava/lang/ClassLoader;
0 6 3 hostClassCache Lcom/oracle/truffle/polyglot/HostClassCache;
0 6 4 classOverrides Ljava/lang/Object;
3 6 5 classOverride Z
4 6 6 bytecodeGenerator Lcom/oracle/truffle/polyglot/HostAdapterBytecodeGenerator;
5 6 7 generatedClassLoader Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
Signature: (Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;Ljava/lang/ClassLoader;Lcom/oracle/truffle/polyglot/HostClassCache;Ljava/lang/Object;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
superClass
interfaces
commonLoader
hostClassCache
classOverrides
static java.lang.Object getSuperAdapter(com.oracle.truffle.polyglot.HostObject);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.HostAdapterFactory.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.isAdapterInstance:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new com.oracle.truffle.polyglot.HostAdapterSuperMembers
dup
aload 0
invokespecial com.oracle.truffle.polyglot.HostAdapterSuperMembers.<init>:(Lcom/oracle/truffle/polyglot/HostObject;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 adapter Lcom/oracle/truffle/polyglot/HostObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
adapter
static java.lang.String getSuperMethodName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.HostAdapterFactory.$assertionsDisabled:Z
ifne 1
aload 0
ldc "super$"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
ldc "super$"
aload 0
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 methodName Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
methodName
static boolean isAdapterInstance(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.polyglot.HostAdapterClassLoader.isAdapterInstance:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 adapter Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
adapter
private static boolean classLoaderCanSee(java.lang.ClassLoader, java.lang.Class<?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iconst_0
aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
aload 1
if_acmpne 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 loader Ljava/lang/ClassLoader;
0 7 1 clazz Ljava/lang/Class<*>;
Exception table:
from to target type
2 4 5 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
loader
clazz
private static boolean classLoaderCanSee(java.lang.ClassLoader, java.lang.Class<?>[]);
descriptor: (Ljava/lang/ClassLoader;[Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: java.lang.ClassLoader java.lang.Class[] top int int java.lang.Class[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.classLoaderCanSee:(Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
ifne 4
3: iconst_0
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 loader Ljava/lang/ClassLoader;
0 7 1 classes [Ljava/lang/Class;
2 4 2 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/ClassLoader;[Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
loader
classes
private static java.lang.ClassLoader getCommonClassLoader(java.lang.ClassLoader, java.lang.Class<?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljava/lang/Object;
if_acmpeq 3
1: aload 1
invokestatic com.oracle.truffle.polyglot.HostAdapterClassLoader.isGeneratedClass:(Ljava/lang/Class;)Z
ifeq 3
2: aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
areturn
3: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 classLoader Ljava/lang/ClassLoader;
0 4 1 superclass Ljava/lang/Class<*>;
Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
classLoader
superclass
private static java.lang.Class<?> getTypeForCache(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 types [Ljava/lang/Class;
Signature: ([Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
types
}
SourceFile: "HostAdapterFactory.java"
NestMembers:
com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final AdapterResult = com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult of com.oracle.truffle.polyglot.HostAdapterFactory
final HostContext = com.oracle.truffle.polyglot.HostLanguage$HostContext of com.oracle.truffle.polyglot.HostLanguage
abstract SingleMethod = com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod of com.oracle.truffle.polyglot.HostMethodDesc