Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java @ 15167:258e3e0b5e2e
Change RootCallTarget from an abstract class into an interface.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Wed, 16 Apr 2014 18:51:54 +0200 |
parents | 2ed720ce9273 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java Wed Apr 16 18:33:10 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java Wed Apr 16 18:51:54 2014 +0200 @@ -24,38 +24,13 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; /** * Represents the target of a call to a {@link RootNode}, i.e., to another tree of nodes. Instances * of this class can be created using {@link TruffleRuntime#createCallTarget(RootNode)}. */ -public abstract class RootCallTarget implements CallTarget { - - private final RootNode rootNode; - - public RootCallTarget(RootNode function) { - this.rootNode = function; - this.rootNode.adoptChildren(); - this.rootNode.setCallTarget(this); - } +public interface RootCallTarget extends CallTarget { - @Override - public String toString() { - return rootNode.toString(); - } - - public final RootNode getRootNode() { - return rootNode; - } - - protected final Object callProxy(VirtualFrame frame) { - try { - return getRootNode().execute(frame); - } finally { - // this assertion is needed to keep the values from being cleared as non-live locals - assert frame != null && this != null; - } - } + RootNode getRootNode(); }