OSDN Git Service

2004-01-19 Thomas Pfaff <tpfaff@gmx.net>
authorjjohnstn <jjohnstn>
Mon, 19 Jan 2004 21:30:33 +0000 (21:30 +0000)
committerjjohnstn <jjohnstn>
Mon, 19 Jan 2004 21:30:33 +0000 (21:30 +0000)
        * libc/stdio/fclose.c (fclose): Release FILE as the last step.
        * libc/stdio/freopen.c (freopen): Ditto.

newlib/ChangeLog
newlib/libc/stdio/fclose.c
newlib/libc/stdio/freopen.c

index 5e57a37..1641d7b 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-19  Thomas Pfaff  <tpfaff@gmx.net>
+
+       * libc/stdio/fclose.c (fclose): Release FILE as the last step.
+       * libc/stdio/freopen.c (freopen): Ditto.
+
 2004-01-16  Christopher Faylor  <cgf@redhat.com>
 
        * libc/stdio/vfprintf.c: Add sys/lock.h include.
index 630cd41..1caeb4c 100644 (file)
@@ -83,11 +83,11 @@ _DEFUN (fclose, (fp),
     FREEUB (fp);
   if (HASLB (fp))
     FREELB (fp);
-  fp->_flags = 0;              /* release this FILE for reuse */
   _funlockfile(fp);
 #ifndef __SINGLE_THREAD__
   __lock_close_recursive (*(_LOCK_RECURSIVE_T *)&fp->_lock);
 #endif
+  fp->_flags = 0;              /* release this FILE for reuse */
 
   return (r);
 }
index 6d54789..ba83dd2 100644 (file)
@@ -148,12 +148,12 @@ _DEFUN (_freopen_r, (ptr, file, mode, fp),
 
   if (f < 0)
     {                          /* did not get it after all */
-      fp->_flags = 0;          /* set it free */
       ptr->_errno = e;         /* restore in case _close clobbered */
       _funlockfile(fp);
 #ifndef __SINGLE_THREAD__
       __lock_close_recursive (*(_LOCK_RECURSIVE_T *)&fp->_lock);
 #endif
+      fp->_flags = 0;          /* set it free */
       return NULL;
     }