diff truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/impl/SymbolInvokerImpl.java @ 22096:1e78795e7e6a

Allow to specify globalSymbols when defining TruffleVM
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Tue, 18 Aug 2015 16:10:03 +0200
parents 93bfc9602271
children 29126a670f9b
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/impl/SymbolInvokerImpl.java	Mon Aug 17 15:24:22 2015 -0700
+++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/impl/SymbolInvokerImpl.java	Tue Aug 18 16:10:03 2015 +0200
@@ -37,10 +37,15 @@
 public final class SymbolInvokerImpl extends SymbolInvoker {
     static final FrameDescriptor UNUSED_FRAMEDESCRIPTOR = new FrameDescriptor();
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     protected CallTarget createCallTarget(TruffleLanguage<?> lang, Object symbol, Object... arr) throws IOException {
-        Class<? extends TruffleLanguage<?>> type = (Class<? extends TruffleLanguage<?>>) lang.getClass();
+        Class<? extends TruffleLanguage<?>> type;
+        if (lang != null) {
+            type = (Class) lang.getClass();
+        } else {
+            type = (Class) TruffleLanguage.class;
+        }
         RootNode symbolNode;
         if ((symbol instanceof String) || (symbol instanceof Number) || (symbol instanceof Boolean) || (symbol instanceof Character)) {
             symbolNode = new ConstantRootNode(type, symbol);