Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java @ 16992:5a1d764f6afc
Truffle: added support for Runtime#getCallTargets()
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Thu, 28 Aug 2014 15:35:29 +0200 |
parents | 534a87f866dc |
children | 7b45e33b7986 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java Thu Aug 28 11:42:02 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java Thu Aug 28 15:35:29 2014 +0200 @@ -41,6 +41,7 @@ private ThreadLocal<LinkedList<FrameInstance>> stackTraces = new ThreadLocal<>(); private ThreadLocal<FrameInstance> currentFrames = new ThreadLocal<>(); + private final Map<RootCallTarget, Void> callTargets = Collections.synchronizedMap(new WeakHashMap<RootCallTarget, Void>()); public DefaultTruffleRuntime() { if (Truffle.getRuntime() != null) { @@ -55,7 +56,9 @@ @Override public RootCallTarget createCallTarget(RootNode rootNode) { - return new DefaultCallTarget(rootNode, this); + DefaultCallTarget target = new DefaultCallTarget(rootNode, this); + callTargets.put(target, null); + return target; } public DirectCallNode createDirectCallNode(CallTarget target) { @@ -132,6 +135,11 @@ } @Override + public List<RootCallTarget> getCallTargets() { + return new ArrayList<>(callTargets.keySet()); + } + + @Override public FrameInstance getCurrentFrame() { return currentFrames.get(); }