Skip to content

Commit

Permalink
Showing 3 changed files with 4 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ DynamicObject createSystemCallError(
DynamicObjectFactory factory,
@Nullable Object message,
@Nullable Backtrace backtrace,
@Nullable Object errno);
Object errno);

Object getErrno(DynamicObject object);
void setErrno(DynamicObject object, Object value);
Original file line number Diff line number Diff line change
@@ -22,17 +22,11 @@ public Object errno(DynamicObject self) {

}

@Primitive(name = "errno_set")
@Primitive(name = "exception_set_errno")
public abstract static class ErrnoSetNode extends PrimitiveArrayArgumentsNode {

@Specialization
public Object setErrno(DynamicObject error, int errno) {
Layouts.SYSTEM_CALL_ERROR.setErrno(error, errno);
return errno;
}

@Specialization(guards = "isNil(errno)")
public Object setErrno(DynamicObject error, DynamicObject errno) {
public Object setErrno(DynamicObject error, Object errno) {
Layouts.SYSTEM_CALL_ERROR.setErrno(error, errno);
return errno;
}
2 changes: 1 addition & 1 deletion truffle/src/main/ruby/core/exception.rb
Original file line number Diff line number Diff line change
@@ -373,7 +373,7 @@ class << self
def initialize(*args)
kls = self.class
message, errno, location = args
Truffle.invoke_primitive :errno_set, self, errno
Truffle.invoke_primitive :exception_set_errno, self, errno

msg = "unknown error"
msg << " @ #{StringValue(location)}" if location

0 comments on commit e732cdb

Please sign in to comment.