diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4b334f7d9..7520d6ee4 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +Wed Mar 29 22:49:56 2000 Christopher Faylor + + * fhandler.h (select_record): Explicitly zero elements of this class. + (select_stuff): Ditto. + * select.cc (cygwin_select): Eliminate memset zero of sel. + Tue Mar 28 16:45:42 2000 Christopher Faylor * Makefile.in: Use default rules when compiling cygrun.o. diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index f92ee88ba..acecb63df 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -773,7 +773,6 @@ struct select_record BOOL windows_handle; BOOL read_ready, write_ready, except_ready; BOOL read_selected, write_selected, except_selected; - select_record (fhandler_base *in_fh = NULL) {memset (this, 0, sizeof(select_record)); fh = in_fh;} int (*startup) (select_record *me, class select_stuff *stuff); int (*poll) (select_record *me, fd_set *readfds, fd_set *writefds, fd_set *exceptfds); @@ -781,12 +780,24 @@ struct select_record fd_set *exceptfds); void (*cleanup) (select_record *me, class select_stuff *stuff); struct select_record *next; + + select_record (fhandler_base *in_fh = NULL) {memset (this, 0, sizeof(select_record)); fh = in_fh;} + select_record (int) : fd (0), h (NULL), fh (0), saw_error (0), windows_handle (0), + read_ready (0), write_ready (0), except_ready (0), + read_selected (0), write_selected (0), except_selected (0), + startup (NULL), poll (NULL), verify (NULL), cleanup (NULL), + next (NULL) {} }; class select_stuff { public: ~select_stuff (); + select_stuff (): always_ready (0), windows_used (0), + total (0), start (0) + { + memset (device_specific, 0, sizeof (device_specific)); + } BOOL always_ready, windows_used; int total; select_record start; diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index 1199b1c55..b87adc123 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -121,7 +121,6 @@ cygwin_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, select_printf ("%d, %p, %p, %p, %p", n, readfds, writefds, exceptfds, to); - memset (&sel, 0, sizeof (sel)); if (!readfds) { UNIX_FD_ZERO (dummy_readfds, n);