Skip to content
Snippets Groups Projects
Commit 50414729 authored by Christian Humer's avatar Christian Humer
Browse files

Handle foreign execution errors less severe in FastR.

parent 1d135e1e
Branches
No related tags found
No related merge requests found
...@@ -258,7 +258,12 @@ public final class RCallNode extends RNode implements RSyntaxNode { ...@@ -258,7 +258,12 @@ public final class RCallNode extends RNode implements RSyntaxNode {
foreignCall = insert(Message.createExecute(argumentsArray.length).createNode()); foreignCall = insert(Message.createExecute(argumentsArray.length).createNode());
foreignCallArgCount = argumentsArray.length; foreignCallArgCount = argumentsArray.length;
} }
return ForeignAccess.execute(foreignCall, frame, (TruffleObject) functionObject, argumentsArray); try {
return ForeignAccess.execute(foreignCall, frame, (TruffleObject) functionObject, argumentsArray);
} catch (Throwable e) {
errorProfile.enter();
throw RError.error(this, RError.Message.GENERIC, "Foreign function failed: " + e.getMessage() != null ? e.getMessage() : e.toString());
}
} else { } else {
errorProfile.enter(); errorProfile.enter();
throw RError.error(this, RError.Message.APPLY_NON_FUNCTION); throw RError.error(this, RError.Message.APPLY_NON_FUNCTION);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment