# HG changeset patch # User Matthias Grimmer # Date 1448543424 -3600 # Node ID df98dd526dd46c0d45b36d4044fb4f7688d43829 # Parent 475b5817063f1dab608ed51bc405bba00e8434eb Fix Execute and Invoke arity in JavaInterop diff -r 475b5817063f -r df98dd526dd4 truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java --- 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 copy = new ArrayList<>(args.length + 1); - // copy.add(obj); + List 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 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 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)) {