From c4554d20a694da8c5669b7ef86e33a39f5c33ef9 Mon Sep 17 00:00:00 2001 From: usa Date: Tue, 13 Jan 2009 09:23:54 +0000 Subject: [PATCH] * io.c (rb_io_close_read): call rb_io_fptr_cleanup() instead of fptr_finalize() because the fptr has special finalizser if it is a pipe. [ruby-dev:37757] (3) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 +++++++- io.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e687418c2b..d0d833925c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jan 13 18:21:44 2009 NAKAMURA Usaku + + * io.c (rb_io_close_read): call rb_io_fptr_cleanup() instead of + fptr_finalize() because the fptr has special finalizser if it is a + pipe. [ruby-dev:37757] (3) + Tue Jan 13 18:19:49 2009 NAKAMURA Usaku * io.c (rb_io_initialize): workaround for Windows. [ruby-dev:37686] @@ -49,7 +55,7 @@ Tue Jan 13 02:54:54 2009 NAKAMURA Usaku * ext/socket/extconf.rb: use headers instead of "netdb.h" in checking getnameinfo() and getaddrinfo() because Windows doesn't have it. - see [ruby-dev:37757]. + [ruby-dev:37757] (1) * ext/socket/sockport.h (SA_LEN): use sockaddr_in6 when defined AF_INET6 if INET6 is not defined. winsock2's getaddrinfo() returns diff --git a/io.c b/io.c index 5e50b0981d..3d615c2daf 100644 --- a/io.c +++ b/io.c @@ -3378,7 +3378,7 @@ rb_io_close_read(VALUE io) write_io = GetWriteIO(io); if (io != write_io) { rb_io_t *wfptr; - fptr_finalize(fptr, Qfalse); + rb_io_fptr_cleanup(fptr, Qfalse); GetOpenFile(write_io, wfptr); RFILE(io)->fptr = wfptr; RFILE(write_io)->fptr = NULL;