diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java index b6403495bae9e904720f05e14b7b98f23efa4e44..2067774aaf7ea5aefc56dfe42a2138cae2177b61 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java @@ -468,7 +468,6 @@ public final class RContext extends ExecutionContext implements TruffleObject { this.stateInternalCode = ContextStateImpl.newContextState(); this.stateDLL = DLL.ContextStateImpl.newContextState(); this.engine = RContext.getRRuntimeASTAccess().createEngine(this); - state.add(State.CONSTRUCTED); } @@ -525,8 +524,8 @@ public final class RContext extends ExecutionContext implements TruffleObject { stateRConnection.initialize(this); stateStdConnections.initialize(this); stateRNG.initialize(this); - this.stateRFFI = RFFIContextStateFactory.newContextState().initialize(this); - + stateRFFI = RFFIContextStateFactory.newContextState(); + // separate in case initialize calls getStateRFFI()! stateRFFI.initialize(this); stateRSerialize.initialize(this); stateLazyDBCache.initialize(this); @@ -791,6 +790,11 @@ public final class RContext extends ExecutionContext implements TruffleObject { return RContext.getInstance().engine; } + public ContextState getStateRFFI() { + assert stateRFFI != null; + return stateRFFI; + } + public PolyglotEngine getVM() { return info.getVM(); } @@ -811,6 +815,10 @@ public final class RContext extends ExecutionContext implements TruffleObject { return exportedSymbols; } + public void addExportedSymbol(String name, TruffleObject obj) { + exportedSymbols.put(name, obj); + } + public TimeZone getSystemTimeZone() { return info.getSystemTimeZone(); }