Mercurial > hg > truffle
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 } |