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;