Mercurial > hg > truffle
changeset 22010:f410818cdec8
add missing truffle boundaries
author | Andreas Woess <andreas.woess@oracle.com> |
---|---|
date | Thu, 23 Jul 2015 16:28:48 +0200 |
parents | 130e5f69d1a6 |
children | 95d5d6a93968 |
files | truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java |
diffstat | 3 files changed, 22 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Thu Jul 23 10:48:53 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Thu Jul 23 16:28:48 2015 +0200 @@ -25,6 +25,7 @@ package com.oracle.truffle.api.interop; import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; @@ -86,10 +87,15 @@ final ForeignAccess fa = truffleObject.getForeignAccess(); final CallTarget ct = fa.access(access); if (ct == null) { - throw new IllegalStateException("Message " + access + " not recognized by " + fa); + throw messageNotRecognizedException(fa); } return indirectCallNode.call(frame, ct, ForeignAccessArguments.create(truffleObject, arguments)); } + + @TruffleBoundary + private RuntimeException messageNotRecognizedException(final ForeignAccess fa) { + throw new IllegalStateException("Message " + access + " not recognized by " + fa); + } } class CachedObjectAccessNode extends ObjectAccessNode {
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Thu Jul 23 10:48:53 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Thu Jul 23 16:28:48 2015 +0200 @@ -25,6 +25,7 @@ package com.oracle.truffle.api.instrument; import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.instrument.InstrumentationNode.TruffleEvents; import com.oracle.truffle.api.nodes.*; @@ -471,13 +472,23 @@ return; } if (result == null) { - throw new RuntimeException("Instrument result null: " + requiredResultType.getSimpleName() + " is required"); + throw instrumentResultNull(); } if (!(requiredResultType.isAssignableFrom(result.getClass()))) { - throw new RuntimeException("Instrument result " + result.toString() + " not assignable to " + requiredResultType.getSimpleName()); + throw instrumentResultWrongType(result); } } + @TruffleBoundary + private RuntimeException instrumentResultNull() { + return new RuntimeException("Instrument result null: " + requiredResultType.getSimpleName() + " is required"); + } + + @TruffleBoundary + private RuntimeException instrumentResultWrongType(Object result) { + return new RuntimeException("Instrument result " + result.toString() + " not assignable to " + requiredResultType.getSimpleName()); + } + public void returnVoid(Node node, VirtualFrame vFrame) { if (nextInstrumentNode != null) { nextInstrumentNode.returnVoid(node, vFrame);
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Thu Jul 23 10:48:53 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Thu Jul 23 16:28:48 2015 +0200 @@ -27,6 +27,7 @@ import java.util.concurrent.atomic.*; import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; /** * Holds an {@link Assumption}, and knows how to recreate it with the same properties on @@ -45,6 +46,7 @@ this.assumption = new AtomicReference<>(Truffle.getRuntime().createAssumption(name)); } + @TruffleBoundary public void invalidate() { Assumption newAssumption = Truffle.getRuntime().createAssumption(name); Assumption oldAssumption = assumption.getAndSet(newAssumption);