Mercurial > hg > truffle
diff truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/GenericObjectAccessNode.java @ 22502:d2b4fe945c23
Add missing Truffle boundary
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 16 Dec 2015 15:32:23 -0800 |
parents | a016a0239ad9 |
children |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/GenericObjectAccessNode.java Wed Dec 16 16:38:13 2015 +0100 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/GenericObjectAccessNode.java Wed Dec 16 15:32:23 2015 -0800 @@ -26,6 +26,7 @@ import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.nodes.IndirectCallNode; @@ -47,12 +48,18 @@ @Override public Object executeWith(VirtualFrame frame, TruffleObject truffleObject, Object[] arguments) { + final CallTarget ct = findCallTarget(truffleObject); + return indirectCallNode.call(frame, ct, accessArguments.executeCreate(truffleObject, arguments)); + } + + @TruffleBoundary + protected CallTarget findCallTarget(TruffleObject truffleObject) { final ForeignAccess fa = truffleObject.getForeignAccess(); final CallTarget ct = fa.access(access); if (ct == null) { throw messageNotRecognizedException(fa); } - return indirectCallNode.call(frame, ct, accessArguments.executeCreate(truffleObject, arguments)); + return ct; } @CompilerDirectives.TruffleBoundary