comparison truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaFunctionNode.java @ 22540:72601dde92e8

added @TruffleBoundary to JavaFunctionNode.execute
author Doug Simon <doug.simon@oracle.com>
date Tue, 12 Jan 2016 14:25:28 +0100
parents 7a6719b66a74
children
comparison
equal deleted inserted replaced
22539:762dfc692689 22540:72601dde92e8
22 * or visit www.oracle.com if you need additional information or have any 22 * or visit www.oracle.com if you need additional information or have any
23 * questions. 23 * questions.
24 */ 24 */
25 package com.oracle.truffle.api.interop.java; 25 package com.oracle.truffle.api.interop.java;
26 26
27 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
27 import com.oracle.truffle.api.frame.VirtualFrame; 28 import com.oracle.truffle.api.frame.VirtualFrame;
28 import com.oracle.truffle.api.interop.ForeignAccess; 29 import com.oracle.truffle.api.interop.ForeignAccess;
29 import com.oracle.truffle.api.nodes.RootNode; 30 import com.oracle.truffle.api.nodes.RootNode;
31
30 import java.lang.reflect.InvocationTargetException; 32 import java.lang.reflect.InvocationTargetException;
31 import java.lang.reflect.Method; 33 import java.lang.reflect.Method;
32 import java.util.List; 34 import java.util.List;
33 35
34 final class JavaFunctionNode extends RootNode { 36 final class JavaFunctionNode extends RootNode {
46 static Object execute(JavaInterop.JavaFunctionObject receiver, Object[] args) { 48 static Object execute(JavaInterop.JavaFunctionObject receiver, Object[] args) {
47 return execute(receiver.method, receiver.obj, args); 49 return execute(receiver.method, receiver.obj, args);
48 } 50 }
49 51
50 @SuppressWarnings("paramAssign") 52 @SuppressWarnings("paramAssign")
53 @TruffleBoundary
51 static Object execute(Method method, Object obj, Object[] args) { 54 static Object execute(Method method, Object obj, Object[] args) {
52 for (int i = 0; i < args.length; i++) { 55 for (int i = 0; i < args.length; i++) {
53 if (args[i] instanceof JavaInterop.JavaObject) { 56 if (args[i] instanceof JavaInterop.JavaObject) {
54 args[i] = ((JavaInterop.JavaObject) args[i]).obj; 57 args[i] = ((JavaInterop.JavaObject) args[i]).obj;
55 } 58 }