Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultDirectCallNode.java @ 17149:0a35e2789735
Truffle: remove unnecessary DefaultTruffleRuntime fields
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Wed, 17 Sep 2014 20:57:20 +0200 |
parents | a3b0ecef8a15 |
children | e3dd05527c2f |
comparison
equal
deleted
inserted
replaced
17148:3837c6aa9fd0 | 17149:0a35e2789735 |
---|---|
32 * This is runtime specific API. Do not use in a guest language. | 32 * This is runtime specific API. Do not use in a guest language. |
33 */ | 33 */ |
34 public final class DefaultDirectCallNode extends DirectCallNode { | 34 public final class DefaultDirectCallNode extends DirectCallNode { |
35 | 35 |
36 private boolean inliningForced; | 36 private boolean inliningForced; |
37 private final DefaultTruffleRuntime defaultTruffleRuntime; | |
38 | 37 |
39 public DefaultDirectCallNode(CallTarget target, DefaultTruffleRuntime defaultTruffleRuntime) { | 38 public DefaultDirectCallNode(CallTarget target) { |
40 super(target); | 39 super(target); |
41 this.defaultTruffleRuntime = defaultTruffleRuntime; | |
42 } | 40 } |
43 | 41 |
44 @Override | 42 @Override |
45 public Object call(final VirtualFrame frame, Object[] arguments) { | 43 public Object call(final VirtualFrame frame, Object[] arguments) { |
46 final CallTarget currentCallTarget = defaultTruffleRuntime.getCurrentFrame().getCallTarget(); | 44 final CallTarget currentCallTarget = defaultTruffleRuntime().getCurrentFrame().getCallTarget(); |
47 FrameInstance frameInstance = new FrameInstance() { | 45 FrameInstance frameInstance = new FrameInstance() { |
48 | 46 |
49 public Frame getFrame(FrameAccess access, boolean slowPath) { | 47 public Frame getFrame(FrameAccess access, boolean slowPath) { |
50 return frame; | 48 return frame; |
51 } | 49 } |
60 | 58 |
61 public CallTarget getCallTarget() { | 59 public CallTarget getCallTarget() { |
62 return currentCallTarget; | 60 return currentCallTarget; |
63 } | 61 } |
64 }; | 62 }; |
65 defaultTruffleRuntime.pushFrame(frameInstance); | 63 defaultTruffleRuntime().pushFrame(frameInstance); |
66 try { | 64 try { |
67 return getCurrentCallTarget().call(arguments); | 65 return getCurrentCallTarget().call(arguments); |
68 } finally { | 66 } finally { |
69 defaultTruffleRuntime.popFrame(); | 67 defaultTruffleRuntime().popFrame(); |
70 } | 68 } |
71 } | 69 } |
72 | 70 |
73 @Override | 71 @Override |
74 public void forceInlining() { | 72 public void forceInlining() { |
107 | 105 |
108 @Override | 106 @Override |
109 public String toString() { | 107 public String toString() { |
110 return (getParent() != null ? getParent().toString() : super.toString()) + " call " + getCurrentCallTarget().toString(); | 108 return (getParent() != null ? getParent().toString() : super.toString()) + " call " + getCurrentCallTarget().toString(); |
111 } | 109 } |
110 | |
111 private static DefaultTruffleRuntime defaultTruffleRuntime() { | |
112 return (DefaultTruffleRuntime) Truffle.getRuntime(); | |
113 } | |
112 } | 114 } |