[前][次][番号順一覧][スレッド一覧]

ruby-changes:10011

From: yugui <ko1@a...>
Date: Fri, 16 Jan 2009 00:38:24 +0900 (JST)
Subject: [ruby-changes:10011] Ruby:r21553 (ruby_1_9_1): merges r21492 and r21495 from trunk into ruby_1_9_1.

yugui	2009-01-16 00:37:51 +0900 (Fri, 16 Jan 2009)

  New Revision: 21553

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21553

  Log:
    merges r21492 and r21495 from trunk into ruby_1_9_1.
    * 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)
    * io.c (io_reopen, rb_io_init_copy): should register fptr to
      pipe_list when copying pipe fptr.

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/io.c

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 21552)
+++ ruby_1_9_1/ChangeLog	(revision 21553)
@@ -1,3 +1,14 @@
+Tue Jan 13 21:44:30 2009  NAKAMURA Usaku  <usa@r...>
+
+	* io.c (io_reopen, rb_io_init_copy): should register fptr to pipe_list
+	  when copying pipe fptr.
+
+Tue Jan 13 18:21:44 2009  NAKAMURA Usaku  <usa@r...>
+
+	* 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  <usa@r...>
 
 	* io.c (rb_io_initialize): workaround for Windows. [ruby-dev:37686]
@@ -45,7 +56,7 @@
 
 	* 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
Index: ruby_1_9_1/io.c
===================================================================
--- ruby_1_9_1/io.c	(revision 21552)
+++ ruby_1_9_1/io.c	(revision 21553)
@@ -3364,7 +3364,7 @@
     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;
@@ -5224,6 +5224,10 @@
     if (orig->pathv) fptr->pathv = orig->pathv;
     else fptr->pathv = Qnil;
     fptr->finalize = orig->finalize;
+#if defined (__CYGWIN__) || !defined(HAVE_FORK)
+    if (fptr->finalize == pipe_finalize)
+	pipe_add_fptr(fptr);
+#endif
 
     fd = fptr->fd;
     fd2 = orig->fd;
@@ -5375,6 +5379,10 @@
     fptr->lineno = orig->lineno;
     if (!NIL_P(orig->pathv)) fptr->pathv = orig->pathv;
     fptr->finalize = orig->finalize;
+#if defined (__CYGWIN__) || !defined(HAVE_FORK)
+    if (fptr->finalize == pipe_finalize)
+	pipe_add_fptr(fptr);
+#endif
 
     fd = ruby_dup(orig->fd);
     fptr->fd = fd;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]