Mercurial > hg > truffle
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);