Mercurial > hg > truffle
diff truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java @ 22003:5bc7f7b867ab
Making debugger always on for each TruffleVM execution. Introducing EventConsumer to process such debugger events. Requesting each RootNode to be associated with a TruffleLanguage, so debugger can find out proper context for each Node where executions gets suspended.
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Sat, 18 Jul 2015 18:03:36 +0200 |
parents | c07e64ecb528 |
children | 503529c65456 |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java Thu Jul 16 19:11:31 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java Sat Jul 18 18:03:36 2015 +0200 @@ -47,6 +47,7 @@ import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.Message; +import com.oracle.truffle.sl.SLLanguage; import com.oracle.truffle.sl.nodes.call.SLDispatchNode; import com.oracle.truffle.sl.nodes.call.SLDispatchNodeGen; import java.math.BigInteger; @@ -80,6 +81,10 @@ private static class SLForeignCallerRootNode extends RootNode { @Child private SLDispatchNode dispatch = SLDispatchNodeGen.create(); + public SLForeignCallerRootNode() { + super(SLLanguage.class, null, null); + } + @Override public Object execute(VirtualFrame frame) { SLFunction function = (SLFunction) ForeignAccess.getReceiver(frame); @@ -106,6 +111,10 @@ } private static class SLForeignNullCheckNode extends RootNode { + public SLForeignNullCheckNode() { + super(SLLanguage.class, null, null); + } + @Override public Object execute(VirtualFrame frame) { Object receiver = ForeignAccess.getReceiver(frame);