From b6d5ce7975667cc32d7d86a992d5206627e5ff73 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 8 Mar 2015 13:52:51 +0000 Subject: * 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 --- ext/zlib/zlib.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ext') diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 8f24b77d8f..9c2b7b624f 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -3297,9 +3297,13 @@ rb_gzfile_set_comment(VALUE obj, VALUE str) static VALUE rb_gzfile_close(VALUE obj) { - struct gzfile *gz = get_gzfile(obj); + struct gzfile *gz; VALUE io; + TypedData_Get_Struct(obj, struct gzfile, &gzfile_data_type, gz); + if (!ZSTREAM_IS_READY(&gz->z)) { + return Qnil; + } io = gz->io; gzfile_close(gz, 1); return io; -- cgit v1.2.3