summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-08-11 14:53:01 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-08-11 14:53:01 +0000
commit5a5ac31458c5fed5502e4a3dd7b05868ff9379fb (patch)
tree020b7f3c0a39b5c8088b18e1ad6837ba367659da /io.c
parentf9a0c3fa4609b6d3a6fdbd18ac8a46d2d11b8340 (diff)
merge revision(s) r46151,r46165: [Backport #9865]
* io.c (rb_io_fileno, rb_io_inspect): non-modification does not error on frozen IO. [ruby-dev:48241] [Bug #9865] * io.c (rb_io_autoclose_p): Don't raise on frozen IO. * test/lib/minitest/unit.rb: IO#autoclose? may raise IOError. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/io.c b/io.c
index e5a4d3b40c..0ce71108fc 100644
--- a/io.c
+++ b/io.c
@@ -1914,10 +1914,10 @@ rb_io_fdatasync(VALUE io)
static VALUE
rb_io_fileno(VALUE io)
{
- rb_io_t *fptr;
+ rb_io_t *fptr = RFILE(io)->fptr;
int fd;
- GetOpenFile(io, fptr);
+ rb_io_check_closed(fptr);
fd = fptr->fd;
return INT2FIX(fd);
}
@@ -1969,7 +1969,7 @@ rb_io_inspect(VALUE obj)
VALUE result;
static const char closed[] = " (closed)";
- fptr = RFILE(rb_io_taint_check(obj))->fptr;
+ fptr = RFILE(obj)->fptr;
if (!fptr) return rb_any_to_s(obj);
result = rb_str_new_cstr("#<");
rb_str_append(result, rb_class_name(CLASS_OF(obj)));
@@ -7519,8 +7519,8 @@ rb_io_s_for_fd(int argc, VALUE *argv, VALUE klass)
static VALUE
rb_io_autoclose_p(VALUE io)
{
- rb_io_t *fptr;
- GetOpenFile(io, fptr);
+ rb_io_t *fptr = RFILE(io)->fptr;
+ rb_io_check_closed(fptr);
return (fptr->mode & FMODE_PREP) ? Qfalse : Qtrue;
}