aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/stdio/fclose.c2
-rw-r--r--newlib/libc/stdio/freopen.c2
3 files changed, 7 insertions, 2 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 5e57a37..1641d7b 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -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.
diff --git a/newlib/libc/stdio/fclose.c b/newlib/libc/stdio/fclose.c
index 630cd41..1caeb4c 100644
--- a/newlib/libc/stdio/fclose.c
+++ b/newlib/libc/stdio/fclose.c
@@ -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);
}
diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c
index 6d54789..ba83dd2 100644
--- a/newlib/libc/stdio/freopen.c
+++ b/newlib/libc/stdio/freopen.c
@@ -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;
}