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 }