diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-13 06:04:39 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-13 06:04:39 +0000 |
commit | f75fe0bcc7d1143f33c91ab2096aafcf618394d2 (patch) | |
tree | 60422735fa52139bc59eff492dbe636ed3c76249 | |
parent | 89bfc9b70b05ac598d24bb712222b79fb9af1880 (diff) | |
download | ruby-f75fe0bcc7d1143f33c91ab2096aafcf618394d2.tar.gz |
stringio.c: don't raise after close
* ext/stringio/stringio.c (strio_close): don't raise on dobule
close for consistent to IO#close.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/stringio/stringio.c | 8 | ||||
-rw-r--r-- | test/stringio/test_stringio.rb | 4 |
3 files changed, 11 insertions, 6 deletions
@@ -1,3 +1,8 @@ +Fri Mar 13 15:04:36 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ext/stringio/stringio.c (strio_close): don't raise on dobule + close for consistent to IO#close. + Fri Mar 13 15:03:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * io.c (rb_io_close_read, rb_io_close_write): don't raise after diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 78988e194e..ed141dda64 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -360,8 +360,8 @@ strio_close(VALUE self) static VALUE strio_close_read(VALUE self) { - StringIO(self); - if (!READABLE(self)) { + struct StringIO *ptr = StringIO(self); + if (!(ptr->flags & FMODE_READABLE)) { rb_raise(rb_eIOError, "closing non-duplex IO for reading"); } RBASIC(self)->flags &= ~STRIO_READABLE; @@ -378,8 +378,8 @@ strio_close_read(VALUE self) static VALUE strio_close_write(VALUE self) { - StringIO(self); - if (!WRITABLE(self)) { + struct StringIO *ptr = StringIO(self); + if (!(ptr->flags & FMODE_WRITABLE)) { rb_raise(rb_eIOError, "closing non-duplex IO for writing"); } RBASIC(self)->flags &= ~STRIO_WRITABLE; diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb index 6ba1e25791..966bbe1bd4 100644 --- a/test/stringio/test_stringio.rb +++ b/test/stringio/test_stringio.rb @@ -207,7 +207,7 @@ class TestStringIO < Test::Unit::TestCase f = StringIO.new("") f.close_read assert_raise(IOError) { f.read } - assert_raise(IOError) { f.close_read } + assert_nothing_raised(IOError) {f.close_read} f.close f = StringIO.new("", "w") @@ -221,7 +221,7 @@ class TestStringIO < Test::Unit::TestCase f = StringIO.new("") f.close_write assert_raise(IOError) { f.write("foo") } - assert_raise(IOError) { f.close_write } + assert_nothing_raised(IOError) {f.close_write} f.close f = StringIO.new("", "r") |