* ext/zlib/zlib.c (rb_gzfile_close): Don't raise on double
close for consistent to IO#close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5b06e83345
commit
b6d5ce7975
@ -1,3 +1,8 @@
|
|||||||
|
Sun Mar 8 22:50:57 2015 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* ext/zlib/zlib.c (rb_gzfile_close): Don't raise on double
|
||||||
|
close for consistent to IO#close.
|
||||||
|
|
||||||
Sun Mar 8 16:57:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sun Mar 8 16:57:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* dir.c (glob_helper): match patterns against legacy short names
|
* dir.c (glob_helper): match patterns against legacy short names
|
||||||
|
@ -3297,9 +3297,13 @@ rb_gzfile_set_comment(VALUE obj, VALUE str)
|
|||||||
static VALUE
|
static VALUE
|
||||||
rb_gzfile_close(VALUE obj)
|
rb_gzfile_close(VALUE obj)
|
||||||
{
|
{
|
||||||
struct gzfile *gz = get_gzfile(obj);
|
struct gzfile *gz;
|
||||||
VALUE io;
|
VALUE io;
|
||||||
|
|
||||||
|
TypedData_Get_Struct(obj, struct gzfile, &gzfile_data_type, gz);
|
||||||
|
if (!ZSTREAM_IS_READY(&gz->z)) {
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
io = gz->io;
|
io = gz->io;
|
||||||
gzfile_close(gz, 1);
|
gzfile_close(gz, 1);
|
||||||
return io;
|
return io;
|
||||||
|
@ -962,6 +962,19 @@ if defined? Zlib
|
|||||||
assert_equal(content, read_size)
|
assert_equal(content, read_size)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_double_close
|
||||||
|
Tempfile.create("test_zlib_gzip_reader_close") {|t|
|
||||||
|
t.binmode
|
||||||
|
content = "foo"
|
||||||
|
Zlib::GzipWriter.wrap(t) {|gz| gz.print(content) }
|
||||||
|
r = Zlib::GzipReader.open(t.path)
|
||||||
|
assert_equal(content, r.read)
|
||||||
|
assert_nothing_raised { r.close }
|
||||||
|
assert_nothing_raised { r.close }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class TestZlibGzipWriter < Test::Unit::TestCase
|
class TestZlibGzipWriter < Test::Unit::TestCase
|
||||||
@ -1022,6 +1035,15 @@ if defined? Zlib
|
|||||||
assert_equal("foo", Zlib::GzipReader.open(t.path) {|gz| gz.read })
|
assert_equal("foo", Zlib::GzipReader.open(t.path) {|gz| gz.read })
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_double_close
|
||||||
|
Tempfile.create("test_zlib_gzip_reader_close") {|t|
|
||||||
|
t.binmode
|
||||||
|
w = Zlib::GzipWriter.wrap(t)
|
||||||
|
assert_nothing_raised { w.close }
|
||||||
|
assert_nothing_raised { w.close }
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class TestZlib < Test::Unit::TestCase
|
class TestZlib < Test::Unit::TestCase
|
||||||
|
Loading…
x
Reference in New Issue
Block a user