final class com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache
super_class: java.lang.Object
{
private final java.util.WeakHashMap<com.oracle.truffle.llvm.runtime.types.FunctionType, com.oracle.truffle.api.source.Source> sigCache;
descriptor: Ljava/util/WeakHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/WeakHashMap<Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Lcom/oracle/truffle/api/source/Source;>;
private final java.util.WeakHashMap<com.oracle.truffle.llvm.runtime.types.FunctionType, com.oracle.truffle.api.source.Source> sigCacheSkipStackArg;
descriptor: Ljava/util/WeakHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/WeakHashMap<Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Lcom/oracle/truffle/api/source/Source;>;
private final org.graalvm.collections.EconomicMap<java.lang.String, com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction> wellKnown;
descriptor: Lorg/graalvm/collections/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/collections/EconomicMap<Ljava/lang/String;Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$WellKnownFunction;>;
private int nextIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.sigCache:Ljava/util/WeakHashMap;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.sigCacheSkipStackArg:Ljava/util/WeakHashMap;
3: aload 0
invokestatic org.graalvm.collections.EconomicMap.create:()Lorg/graalvm/collections/EconomicMap;
putfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.wellKnown:Lorg/graalvm/collections/EconomicMap;
4: aload 0
iconst_0
putfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.nextIndex:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$SignatureSourceCache;
com.oracle.truffle.api.source.Source getSignatureSource(com.oracle.truffle.llvm.runtime.types.FunctionType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)Lcom/oracle/truffle/api/source/Source;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.sigCache:Ljava/util/WeakHashMap;
iconst_0
invokestatic com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.getSignatureSource:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/util/WeakHashMap;I)Lcom/oracle/truffle/api/source/Source;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$SignatureSourceCache;
0 1 1 type Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
Exceptions:
throws com.oracle.truffle.llvm.runtime.NativeContextExtension$UnsupportedNativeTypeException
MethodParameters:
Name Flags
type
com.oracle.truffle.api.source.Source getSignatureSourceSkipStackArg(com.oracle.truffle.llvm.runtime.types.FunctionType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)Lcom/oracle/truffle/api/source/Source;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.sigCacheSkipStackArg:Ljava/util/WeakHashMap;
iconst_1
invokestatic com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.getSignatureSource:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/util/WeakHashMap;I)Lcom/oracle/truffle/api/source/Source;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$SignatureSourceCache;
0 1 1 type Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
Exceptions:
throws com.oracle.truffle.llvm.runtime.NativeContextExtension$UnsupportedNativeTypeException
MethodParameters:
Name Flags
type
private static com.oracle.truffle.api.source.Source getSignatureSource(com.oracle.truffle.llvm.runtime.types.FunctionType, java.util.WeakHashMap<com.oracle.truffle.llvm.runtime.types.FunctionType, com.oracle.truffle.api.source.Source>, int);
descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/util/WeakHashMap;I)Lcom/oracle/truffle/api/source/Source;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
dup
astore 3
monitorenter
1: aload 1
aload 0
invokevirtual java.util.WeakHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.Source
astore 4
start local 4 2: aload 4
ifnonnull 6
3: aload 0
iload 2
invokestatic com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension.getNativeSignature:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;I)Ljava/lang/String;
astore 5
start local 5 4: ldc "nfi"
aload 5
ldc "llvm-nfi-signature"
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
astore 4
5: aload 1
aload 0
aload 4
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 6: StackMap locals: java.util.WeakHashMap com.oracle.truffle.api.source.Source
StackMap stack:
aload 4
aload 3
monitorexit
7: areturn
end local 4 8: StackMap locals: com.oracle.truffle.llvm.runtime.types.FunctionType java.util.WeakHashMap int java.util.WeakHashMap
StackMap stack: java.lang.Throwable
aload 3
monitorexit
9: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 type Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
0 10 1 map Ljava/util/WeakHashMap<Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Lcom/oracle/truffle/api/source/Source;>;
0 10 2 skipArgs I
2 8 4 ret Lcom/oracle/truffle/api/source/Source;
4 6 5 sig Ljava/lang/String;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Exceptions:
throws com.oracle.truffle.llvm.runtime.NativeContextExtension$UnsupportedNativeTypeException
Signature: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/util/WeakHashMap<Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Lcom/oracle/truffle/api/source/Source;>;I)Lcom/oracle/truffle/api/source/Source;
MethodParameters:
Name Flags
type
map
skipArgs
synchronized com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction getWellKnownFunction(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$WellKnownFunction;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.wellKnown:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction
astore 3
start local 3 1: aload 3
ifnonnull 5
2: ldc "nfi"
aload 2
ldc "llvm-nfi-signature"
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
astore 4
start local 4 3: new com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction
dup
aload 0
dup
getfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.nextIndex:I
dup_x1
iconst_1
iadd
putfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.nextIndex:I
aload 1
aload 4
invokespecial com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction.<init>:(ILjava/lang/String;Lcom/oracle/truffle/api/source/Source;)V
astore 3
4: aload 0
getfield com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache.wellKnown:Lorg/graalvm/collections/EconomicMap;
aload 1
aload 3
invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 5: StackMap locals: com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$SignatureSourceCache;
0 6 1 name Ljava/lang/String;
0 6 2 signature Ljava/lang/String;
1 6 3 ret Lcom/oracle/truffle/llvm/nativemode/runtime/NFIContextExtension$WellKnownFunction;
3 5 4 signatureSource Lcom/oracle/truffle/api/source/Source;
MethodParameters:
Name Flags
name
signature
}
SourceFile: "NFIContextExtension.java"
NestHost: com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension
InnerClasses:
public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
private final SignatureSourceCache = com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$SignatureSourceCache of com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension
final WellKnownFunction = com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension$WellKnownFunction of com.oracle.truffle.llvm.nativemode.runtime.NFIContextExtension
public UnsupportedNativeTypeException = com.oracle.truffle.llvm.runtime.NativeContextExtension$UnsupportedNativeTypeException of com.oracle.truffle.llvm.runtime.NativeContextExtension