This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: revert type of _IO_FILE._chain


No binary differences.
Doesn't break build-shared or build-static.

2000-07-03  Greg McGary  <greg@mcgary.org>

	* libio/libio.h (_IO_FILE): Revert type of _chain to _IO_FILE*.
	* libio/libioP.h (_IO_ITER): Revert to type _IO_FILE*.
	(FILEBUF_LITERAL): Add cast for CHAIN init.
	* libio/genops.c (_IO_un_link, _IO_link_in, _IO_iter_begin): Add casts.
	(_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write):
	Revert type of `fp' to _IO_FILE*.
	(_IO_iter_file): Remove cast.
	(_IO_iter_next): Elide intermediate member reference.

Index: libio/genops.c
===================================================================
RCS file: /cvs/glibc/libc/libio/genops.c,v
retrieving revision 1.39
diff -u -p -r1.39 genops.c
--- genops.c	2000/07/03 21:37:02	1.39
+++ genops.c	2000/07/03 23:55:54
@@ -45,11 +45,11 @@ _IO_un_link (fp)
 #ifdef _IO_MTSAFE_IO
       _IO_lock_lock (list_all_lock);
 #endif
-      for (f = &_IO_list_all; *f != NULL; f = &(*f)->file._chain)
+      for (f = &_IO_list_all; *f; f = (struct _IO_FILE_plus **) &(*f)->file._chain)
 	{
 	  if (*f == fp)
 	    {
-	      *f = fp->file._chain;
+	      *f = (struct _IO_FILE_plus *) fp->file._chain;
 	      break;
 	    }
 	}
@@ -70,7 +70,7 @@ _IO_link_in (fp)
 #ifdef _IO_MTSAFE_IO
 	_IO_lock_lock (list_all_lock);
 #endif
-	fp->file._chain = _IO_list_all;
+	fp->file._chain = (_IO_FILE *) _IO_list_all;
 	_IO_list_all = fp;
 #ifdef _IO_MTSAFE_IO
 	_IO_lock_unlock (list_all_lock);
@@ -746,13 +746,13 @@ int
 _IO_flush_all ()
 {
   int result = 0;
-  struct _IO_FILE_plus *fp;
-  for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
-    if (((fp->file._mode < 0 && fp->file._IO_write_ptr > fp->file._IO_write_base)
-	 || (fp->file._vtable_offset == 0
-	     && fp->file._mode > 0 && (fp->file._wide_data->_IO_write_ptr
-				  > fp->file._wide_data->_IO_write_base)))
-	&& _IO_OVERFLOW (&fp->file, EOF) == EOF)
+  struct _IO_FILE *fp;
+  for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
+    if (((fp->_mode < 0 && fp->_IO_write_ptr > fp->_IO_write_base)
+	 || (fp->_vtable_offset == 0
+	     && fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr
+				  > fp->_wide_data->_IO_write_base)))
+	&& _IO_OVERFLOW (fp, EOF) == EOF)
       result = EOF;
   return result;
 }
@@ -760,10 +760,10 @@ _IO_flush_all ()
 void
 _IO_flush_all_linebuffered ()
 {
-  struct _IO_FILE_plus *fp;
-  for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
-    if ((fp->file._flags & _IO_NO_WRITES) == 0 && fp->file._flags & _IO_LINE_BUF)
-      _IO_OVERFLOW (&fp->file, EOF);
+  struct _IO_FILE *fp;
+  for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
+    if ((fp->_flags & _IO_NO_WRITES) == 0 && fp->_flags & _IO_LINE_BUF)
+      _IO_OVERFLOW (fp, EOF);
 }
 
 static void _IO_unbuffer_write __P ((void));
@@ -771,12 +771,12 @@ static void _IO_unbuffer_write __P ((voi
 static void
 _IO_unbuffer_write ()
 {
-  struct _IO_FILE_plus *fp;
-  for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
-    if (! (fp->file._flags & _IO_UNBUFFERED)
-	&& (! (fp->file._flags & _IO_NO_WRITES)
-	    || (fp->file._flags & _IO_IS_APPENDING)))
-      _IO_SETBUF (&fp->file, NULL, 0);
+  struct _IO_FILE *fp;
+  for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
+    if (! (fp->_flags & _IO_UNBUFFERED)
+	&& (! (fp->_flags & _IO_NO_WRITES)
+	    || (fp->_flags & _IO_IS_APPENDING)))
+      _IO_SETBUF (fp, NULL, 0);
 }
 
 int
@@ -1038,7 +1038,7 @@ _IO_default_imbue (fp, locale)
 _IO_ITER
 _IO_iter_begin()
 {
-  return _IO_list_all;
+  return (_IO_ITER) _IO_list_all;
 }
 
 _IO_ITER
@@ -1051,14 +1051,14 @@ _IO_ITER
 _IO_iter_next(iter)
     _IO_ITER iter;
 {
-  return iter->file._chain;
+  return iter->_chain;
 }
 
 _IO_FILE *
 _IO_iter_file(iter)
     _IO_ITER iter;
 {
-  return (_IO_FILE *) iter;
+  return iter;
 }
 
 void
Index: libio/libio.h
===================================================================
RCS file: /cvs/glibc/libc/libio/libio.h,v
retrieving revision 1.41
diff -u -p -r1.41 libio.h
--- libio.h	2000/06/29 07:16:41	1.41
+++ libio.h	2000/07/03 23:55:54
@@ -252,8 +252,6 @@ struct _IO_wide_data
   struct _IO_jump_t *_wide_vtable;
 };
 
-struct _IO_FILE_plus;
-
 struct _IO_FILE {
   int _flags;		/* High-order word is _IO_MAGIC; rest is flags. */
 #define _IO_file_flags _flags
@@ -275,7 +273,7 @@ struct _IO_FILE {
 
   struct _IO_marker *_markers;
 
-  struct _IO_FILE_plus *_chain;
+  struct _IO_FILE *_chain;
 
   int _fileno;
   int _blksize;
@@ -311,6 +309,8 @@ struct _IO_FILE_complete
 #ifndef __cplusplus
 typedef struct _IO_FILE _IO_FILE;
 #endif
+
+struct _IO_FILE_plus;
 
 extern struct _IO_FILE_plus _IO_2_1_stdin_;
 extern struct _IO_FILE_plus _IO_2_1_stdout_;
Index: libio/libioP.h
===================================================================
RCS file: /cvs/glibc/libc/libio/libioP.h,v
retrieving revision 1.42
diff -u -p -r1.42 libioP.h
--- libioP.h	2000/06/29 07:16:41	1.42
+++ libioP.h	2000/07/03 23:55:54
@@ -323,7 +323,7 @@ struct _IO_cookie_file
 
 /* Iterator type for walking global linked list of _IO_FILE objects. */
 
-typedef struct _IO_FILE_plus *_IO_ITER;
+typedef struct _IO_FILE *_IO_ITER;
 
 /* Generic functions */
 
@@ -708,12 +708,12 @@ extern int _IO_vscanf __P ((const char *
 # ifdef _IO_USE_OLD_IO_FILE
 #  define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \
        { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
-         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \
-	   0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \
+	 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
 # else
 #  define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \
        { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
-         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \
 	 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\
 	 NULL, WDP, 0 }
 # endif
@@ -721,11 +721,12 @@ extern int _IO_vscanf __P ((const char *
 # ifdef _IO_USE_OLD_IO_FILE
 #  define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \
        { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
-	   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, 0, _IO_pos_BAD }
+	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \
+	 0, _IO_pos_BAD }
 # else
 #  define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \
        { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
-         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \
 	 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \
 	 NULL, WDP, 0 }
 # endif

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]