ruby-changes:15348
From: kosaki <ko1@a...>
Date: Tue, 6 Apr 2010 23:07:45 +0900 (JST)
Subject: [ruby-changes:15348] Ruby:r27238 (trunk): * vm_core.h: Introduce UNINITIALIZED_VAR() macro.
kosaki 2010-04-06 23:07:06 +0900 (Tue, 06 Apr 2010) New Revision: 27238 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27238 Log: * vm_core.h: Introduce UNINITIALIZED_VAR() macro. * thread.c (do_select): Use UNINITIALIZED_VAR() instead FAKE_FD_ZERO(). Also, remove FAKE_FD_ZERO completely. [Feature #3018] Modified files: trunk/ChangeLog trunk/thread.c trunk/vm_core.h Index: ChangeLog =================================================================== --- ChangeLog (revision 27237) +++ ChangeLog (revision 27238) @@ -1,3 +1,9 @@ +Tue Apr 6 23:01:35 2010 KOSAKI Motohiro <kosaki.motohiro@g...> + + * vm_core.h: Introduce UNINITIALIZED_VAR() macro. + * thread.c (do_select): Use UNINITIALIZED_VAR() instead FAKE_FD_ZERO(). + Also, remove FAKE_FD_ZERO completely. [Feature #3018] + Tue Apr 6 21:55:25 2010 Tanaka Akira <akr@f...> * configure.in: test localtime(3) overflow. [ruby-dev:40910] Index: vm_core.h =================================================================== --- vm_core.h (revision 27237) +++ vm_core.h (revision 27238) @@ -106,6 +106,12 @@ #define UNLIKELY(x) (x) #endif /* __GNUC__ >= 3 */ +#if __GNUC__ >= 3 +#define UNINITIALIZED_VAR(x) x = x +#else +#define UNINITIALIZED_VAR(x) x +#endif + typedef unsigned long rb_num_t; /* iseq data type */ Index: thread.c =================================================================== --- thread.c (revision 27237) +++ thread.c (revision 27238) @@ -2415,12 +2415,9 @@ struct timeval *timeout) { int result, lerrno; - fd_set orig_read, orig_write, orig_except; -#if defined __GNUC__ && defined __x86_64__ -#define FAKE_FD_ZERO(f) (*(int *)&(f)=0) /* suppress lots of warnings */ -#else -#define FAKE_FD_ZERO(f) ((void)0) -#endif + fd_set UNINITIALIZED_VAR(orig_read); + fd_set UNINITIALIZED_VAR(orig_write); + fd_set UNINITIALIZED_VAR(orig_except); #ifndef linux double limit = 0; @@ -2442,12 +2439,10 @@ } #endif - if (read) orig_read = *read; else FAKE_FD_ZERO(orig_read); - if (write) orig_write = *write; else FAKE_FD_ZERO(orig_write); - if (except) orig_except = *except; else FAKE_FD_ZERO(orig_except); + if (read) orig_read = *read; + if (write) orig_write = *write; + if (except) orig_except = *except; -#undef FAKE_FD_ZERO - retry: lerrno = 0; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/