Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ArgumentsTest.java @ 9330:e162d9e32830
Added a clazz parameter to Frame.getArguments in order to allow unsafe access to the arguments object (i.e., avoiding the null check and the type cast).
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 26 Apr 2013 17:15:10 +0200 |
parents | 5e3d1a68664e |
children | df1d665ca846 |
comparison
equal
deleted
inserted
replaced
9329:fa188fbfe3fe | 9330:e162d9e32830 |
---|---|
33 * | 33 * |
34 * <p> | 34 * <p> |
35 * A guest language can pass its own custom arguments when invoking a Truffle method by creating a | 35 * A guest language can pass its own custom arguments when invoking a Truffle method by creating a |
36 * subclass of {@link Arguments}. When invoking a call target with | 36 * subclass of {@link Arguments}. When invoking a call target with |
37 * {@link CallTarget#call(Arguments)}, the arguments can be passed. A Truffle node can access the | 37 * {@link CallTarget#call(Arguments)}, the arguments can be passed. A Truffle node can access the |
38 * arguments passed into the Truffle method by using {@link VirtualFrame#getArguments()}. | 38 * arguments passed into the Truffle method by using {@link VirtualFrame#getArguments}. |
39 * </p> | 39 * </p> |
40 * | 40 * |
41 * <p> | 41 * <p> |
42 * The arguments class should only contain fields that are declared as final. This allows the | 42 * The arguments class should only contain fields that are declared as final. This allows the |
43 * Truffle runtime to improve optimizations around guest language method calls. Also, the arguments | 43 * Truffle runtime to improve optimizations around guest language method calls. Also, the arguments |
95 TestArgumentNode(int index) { | 95 TestArgumentNode(int index) { |
96 this.index = index; | 96 this.index = index; |
97 } | 97 } |
98 | 98 |
99 int execute(VirtualFrame frame) { | 99 int execute(VirtualFrame frame) { |
100 return ((TestArguments) frame.getArguments()).values[index]; | 100 return frame.getArguments(TestArguments.class).values[index]; |
101 } | 101 } |
102 } | 102 } |
103 } | 103 } |