Skip to content
Snippets Groups Projects
Commit 748259d7 authored by Lukas Stadler's avatar Lukas Stadler
Browse files

RArguments.setArgument is no longer required

parent 7190dfe2
No related branches found
No related tags found
No related merge requests found
......@@ -40,7 +40,6 @@ import com.oracle.truffle.r.nodes.function.PromiseHelperNode;
import com.oracle.truffle.r.nodes.function.opt.EagerEvalHelper;
import com.oracle.truffle.r.nodes.function.opt.OptConstantPromiseNode;
import com.oracle.truffle.r.nodes.function.opt.OptVariablePromiseBaseNode;
import com.oracle.truffle.r.runtime.RArguments;
import com.oracle.truffle.r.runtime.RInternalError;
import com.oracle.truffle.r.runtime.data.REmpty;
import com.oracle.truffle.r.runtime.data.RMissing;
......@@ -113,13 +112,9 @@ public final class AccessArgumentNode extends RNode {
assert !(getRootNode() instanceof RBuiltinRootNode) : getRootNode();
// Insert default value
checkPromiseFactory();
Object result;
if (canBeOptimized()) {
if (checkInsertOptDefaultArg()) {
result = optDefaultArgNode.execute(frame);
// Update RArguments for S3 dispatch to work
RArguments.setArgument(frame, index, result);
return result;
return optDefaultArgNode.execute(frame);
} else {
/*
* Default arg cannot be optimized: Rewrite to default and assure that we don't take
......@@ -130,10 +125,7 @@ public final class AccessArgumentNode extends RNode {
}
}
// Insert default value
result = factory.createPromise(frame.materialize());
// Update RArguments for S3 dispatch to work
RArguments.setArgument(frame, index, result);
return result;
return factory.createPromise(frame.materialize());
}
private Object doArgument(VirtualFrame frame, Object arg) {
......
......@@ -264,18 +264,6 @@ public final class RArguments {
return Arrays.copyOfRange(args, INDEX_ARGUMENTS, INDEX_ARGUMENTS + getArgumentsLength(frame));
}
/**
* <b>Only to be called from AccessArgumentNode!</b>
*
* @param frame
* @param argIndex
* @param newValue
*/
public static void setArgument(Frame frame, int argIndex, Object newValue) {
assert (argIndex >= 0 && argIndex < getNArgs(frame));
frame.getArguments()[INDEX_ARGUMENTS + argIndex] = newValue;
}
public static int getArgumentsLength(Frame frame) {
return getNArgs(frame);
}
......
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