From ea5ab17c5fccc4679576d11c7c7e89825ef44f40 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Thu, 18 Aug 2016 13:07:01 +0200
Subject: [PATCH] pass along signature in RArgumentsNode

---
 .../truffle/r/nodes/function/signature/RArgumentsNode.java  | 4 ++--
 .../src/com/oracle/truffle/r/runtime/RArguments.java        | 6 +-----
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/signature/RArgumentsNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/signature/RArgumentsNode.java
index 244c55359e..c62c69443f 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/signature/RArgumentsNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/signature/RArgumentsNode.java
@@ -68,7 +68,7 @@ public abstract class RArgumentsNode extends RBaseNode {
         @Override
         public Object[] execute(RFunction function, RCaller caller, MaterializedFrame callerFrame, Object[] evaluatedArgs, ArgumentsSignature signature, DispatchArgs dispatchArgs) {
             if (function == cachedFunction) {
-                return RArguments.create(cachedFunction, caller, callerFrame, evaluatedArgs, cachedFunction.getEnclosingFrame(), dispatchArgs);
+                return RArguments.create(cachedFunction, caller, callerFrame, evaluatedArgs, signature, cachedFunction.getEnclosingFrame(), dispatchArgs);
             } else {
                 CompilerDirectives.transferToInterpreterAndInvalidate();
                 return replace(new RArgumentsGenericNode()).execute(function, caller, callerFrame, evaluatedArgs, signature, dispatchArgs);
@@ -79,7 +79,7 @@ public abstract class RArgumentsNode extends RBaseNode {
     private static final class RArgumentsGenericNode extends RArgumentsNode {
         @Override
         public Object[] execute(RFunction function, RCaller caller, MaterializedFrame callerFrame, Object[] evaluatedArgs, ArgumentsSignature signature, DispatchArgs dispatchArgs) {
-            return RArguments.create(function, caller, callerFrame, evaluatedArgs, function.getEnclosingFrame(), dispatchArgs);
+            return RArguments.create(function, caller, callerFrame, evaluatedArgs, signature, function.getEnclosingFrame(), dispatchArgs);
         }
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RArguments.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RArguments.java
index 35ebce4aa4..daa766599a 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RArguments.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RArguments.java
@@ -171,12 +171,8 @@ public final class RArguments {
 
     public static Object[] create(RFunction functionObj, RCaller call, MaterializedFrame callerFrame, Object[] evaluatedArgs, DispatchArgs dispatchArgs) {
         ArgumentsSignature formalSignature = ((HasSignature) functionObj.getRootNode()).getSignature();
-        return create(functionObj, call, callerFrame, evaluatedArgs, ArgumentsSignature.empty(formalSignature.getLength()), dispatchArgs);
-    }
-
-    public static Object[] create(RFunction functionObj, RCaller call, MaterializedFrame callerFrame, Object[] evaluatedArgs, ArgumentsSignature suppliedSignature, DispatchArgs dispatchArgs) {
         CompilerAsserts.neverPartOfCompilation();
-        return create(functionObj, call, callerFrame, evaluatedArgs, suppliedSignature, functionObj.getEnclosingFrame(), dispatchArgs);
+        return create(functionObj, call, callerFrame, evaluatedArgs, ArgumentsSignature.empty(formalSignature.getLength()), functionObj.getEnclosingFrame(), dispatchArgs);
     }
 
     public static Object[] create(RFunction functionObj, RCaller call, MaterializedFrame callerFrame, Object[] evaluatedArgs, MaterializedFrame enclosingFrame, DispatchArgs dispatchArgs) {
-- 
GitLab