changeset 22419:df98dd526dd4

Fix Execute and Invoke arity in JavaInterop
author Matthias Grimmer <grimmer@ssw.jku.at>
date Thu, 26 Nov 2015 14:10:24 +0100
parents 475b5817063f
children 5e2dd9c3fa7d
files truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java
diffstat 1 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java	Thu Nov 26 10:20:33 2015 +0100
+++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java	Thu Nov 26 14:10:24 2015 +0100
@@ -366,8 +366,7 @@
             }
 
             if (Message.createExecute(0).equals(message)) {
-                List<Object> copy = new ArrayList<>(args.length + 1);
-                // copy.add(obj);
+                List<Object> copy = new ArrayList<>(args.length);
                 copy.addAll(Arrays.asList(args));
                 message = Message.createExecute(copy.size());
                 val = message(message, obj, copy.toArray());
@@ -376,9 +375,9 @@
 
             if (Message.createInvoke(0).equals(message)) {
                 List<Object> copy = new ArrayList<>(args.length + 1);
-                copy.add(obj);
+                copy.add(name);
                 copy.addAll(Arrays.asList(args));
-                message = Message.createInvoke(copy.size());
+                message = Message.createInvoke(args.length);
                 val = message(message, obj, copy.toArray());
                 return toJava(val, method);
             }
@@ -395,7 +394,7 @@
                     List<Object> callArgs = new ArrayList<>(args.length);
                     callArgs.add(name);
                     callArgs.addAll(Arrays.asList(args));
-                    ret = message(Message.createInvoke(callArgs.size()), obj, callArgs.toArray());
+                    ret = message(Message.createInvoke(args.length), obj, callArgs.toArray());
                 } catch (IllegalArgumentException ex) {
                     val = message(Message.READ, obj, name);
                     if (isPrimitive(val)) {