Skip to content
Snippets Groups Projects
Commit f1d4d0f6 authored by Mick Jordan's avatar Mick Jordan
Browse files

Merge branch 'bugfix/somebug' into feature/addmatrix

parents 7e32c671 f0b95c08
No related branches found
No related tags found
No related merge requests found
......@@ -104,7 +104,7 @@ public class EvalFunctions {
@Specialization
protected Object doEval(VirtualFrame frame, Object expr, Object envir, REnvironment enclos, //
@Cached("createCast()") EvalEnvCast envCast) {
return doEvalBody(RCaller.createInvalid(frame), expr, envCast.execute(envir, enclos));
return doEvalBody(RCaller.create(frame, getOriginalCall()), expr, envCast.execute(envir, enclos));
}
protected EvalEnvCast createCast() {
......
......@@ -220,9 +220,10 @@ public abstract class CallMatcherNode extends RBaseNode {
evaluatePromises(frame, cachedFunction, reorderedArgs, formals.getSignature().getVarArgIndex());
if (call != null) {
RCaller parent = RArguments.getCall(frame).getParent();
RCaller caller = functionName == null ? RCaller.createInvalid(frame, parent)
String genFunctionName = functionName == null ? function.getName() : functionName;
RCaller caller = genFunctionName == null ? RCaller.createInvalid(frame, parent)
: RCaller.create(frame, parent,
RCallerHelper.createFromArguments(functionName, new RArgsValuesAndNames(reorderedArgs, ArgumentsSignature.empty(reorderedArgs.length))));
RCallerHelper.createFromArguments(genFunctionName, new RArgsValuesAndNames(reorderedArgs, ArgumentsSignature.empty(reorderedArgs.length))));
Object[] arguments = prepareArguments(reorderedArgs, formals.getSignature(), cachedFunction, dispatchArgs, caller);
return call.call(frame, arguments);
} else {
......@@ -307,8 +308,9 @@ public abstract class CallMatcherNode extends RBaseNode {
evaluatePromises(frame, function, reorderedArgs.getArguments(), reorderedArgs.getSignature().getVarArgIndex());
RCaller parent = RArguments.getCall(frame).getParent();
RCaller caller = functionName == null ? RCaller.createInvalid(frame, parent)
: RCaller.create(frame, RCallerHelper.createFromArguments(functionName,
String genFunctionName = functionName == null ? function.getName() : functionName;
RCaller caller = genFunctionName == null ? RCaller.createInvalid(frame, parent)
: RCaller.create(frame, RCallerHelper.createFromArguments(genFunctionName,
new RArgsValuesAndNames(reorderedArgs.getArguments(), ArgumentsSignature.empty(reorderedArgs.getLength()))));
Object[] arguments = prepareArguments(reorderedArgs.getArguments(), reorderedArgs.getSignature(), function, dispatchArgs, caller);
return call.call(frame, function.getTarget(), arguments);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment