diff options
-rw-r--r-- | newlib/ChangeLog | 7 | ||||
-rw-r--r-- | newlib/libc/stdio/findfp.c | 3 | ||||
-rw-r--r-- | newlib/libc/stdio/vfprintf.c | 6 |
3 files changed, 12 insertions, 4 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 4d84d50..38a26e0 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,10 @@ +2004-01-16 Thomas Pfaff <tpfaff@gmx.net> + + * libc/stdio/findfp.c (__sfp): Remove unnecessary memset. + * libc/stdio/vfprintf.c (__sbprintf): Ditto. + Add calls to __lock_init_recursive and __lock_close_recursive + instead. + 2004-01-15 Thomas Pfaff <tpfaff@gmx.net> * libc/stdio/fclose.c: Include sys/lock.h. diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c index efbb625..aff231e 100644 --- a/newlib/libc/stdio/findfp.c +++ b/newlib/libc/stdio/findfp.c @@ -114,9 +114,6 @@ found: fp->_ub._size = 0; fp->_lb._base = NULL; /* no line buffer */ fp->_lb._size = 0; -#ifndef __SINGLE_THREAD__ - memset (&fp->_lock, 0, sizeof(fp->_lock)); -#endif return fp; } diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c index c13a7f7..5fe4431 100644 --- a/newlib/libc/stdio/vfprintf.c +++ b/newlib/libc/stdio/vfprintf.c @@ -253,7 +253,7 @@ __sbprintf(fp, fmt, ap) fake._bf._size = fake._w = sizeof(buf); fake._lbfsize = 0; /* not actually used, but Just In Case */ #ifndef __SINGLE_THREAD__ - memset (&fake._lock, 0, sizeof(fake._lock)); + __lock_init_recursive (*(_LOCK_RECURSIVE_T *)&fake._lock); #endif /* do the work, then copy any error status */ @@ -262,6 +262,10 @@ __sbprintf(fp, fmt, ap) ret = EOF; if (fake._flags & __SERR) fp->_flags |= __SERR; + +#ifndef __SINGLE_THREAD__ + __lock_close_recursive (*(_LOCK_RECURSIVE_T *)&fake._lock); +#endif return (ret); } |