diff truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java @ 22139:597953a8e6f0

Testing behavior of primitive types returned from an interop method.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Wed, 09 Sep 2015 19:18:44 +0200
parents e70b20f4bb00
children dc83cc1f94f2
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java	Wed Sep 09 18:53:14 2015 +0200
+++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java	Wed Sep 09 19:18:44 2015 +0200
@@ -49,7 +49,7 @@
 import com.oracle.truffle.sl.SLLanguage;
 import com.oracle.truffle.sl.nodes.call.SLDispatchNode;
 import com.oracle.truffle.sl.nodes.call.SLDispatchNodeGen;
-import java.math.BigInteger;
+import static com.oracle.truffle.sl.runtime.SLContext.fromForeignValue;
 import java.util.List;
 
 /**
@@ -102,20 +102,10 @@
                 arr = args.toArray();
             }
             for (int i = 0; i < arr.length; i++) {
-                Object a = arr[i];
-                if (a instanceof Long) {
-                    continue;
-                }
-                if (a instanceof BigInteger) {
-                    continue;
-                }
-                if (a instanceof Number) {
-                    arr[i] = ((Number) a).longValue();
-                }
+                arr[i] = fromForeignValue(arr[i]);
             }
             return dispatch.executeDispatch(frame, function, arr);
         }
-
     }
 
     private static class SLForeignNullCheckNode extends RootNode {