From ab875ea72654fac71cb13470c85b43412c2e2391 Mon Sep 17 00:00:00 2001 From: jhb Date: Thu, 17 Apr 2008 22:17:54 +0000 Subject: Next stage of stdio cleanup: Retire __sFILEX and merge the fields back into __sFILE. This was supposed to be done in 6.0. Some notes: - Where possible I restored the various lines to their pre-__sFILEX state. - Retire INITEXTRA() and just initialize the wchar bits (orientation and mbstate) explicitly instead. The various places that used INITEXTRA didn't need the locking fields or _up initialized. (Some places needed _up to exist and not be off the end of a NULL or garbage pointer, but they didn't require it to be initialized to a specific value.) - For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to avoid namespace pollution of including all the pthread types in stdio.h. Once we remove all the inlines and make __sFILE private it can go back to using pthread_t, etc. - This does not remove any of the inlines currently and does not change any of the public ABI of 'FILE'. MFC after: 1 month Reviewed by: peter --- lib/libc/stdio/asprintf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/libc/stdio/asprintf.c') diff --git a/lib/libc/stdio/asprintf.c b/lib/libc/stdio/asprintf.c index f142651..ed86989 100644 --- a/lib/libc/stdio/asprintf.c +++ b/lib/libc/stdio/asprintf.c @@ -43,7 +43,6 @@ asprintf(char **str, char const *fmt, ...) int ret; va_list ap; FILE f; - struct __sFILEX ext; f._file = -1; f._flags = __SWR | __SSTR | __SALC; @@ -54,8 +53,8 @@ asprintf(char **str, char const *fmt, ...) return (-1); } f._bf._size = f._w = 127; /* Leave room for the NUL */ - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); va_start(ap, fmt); ret = __vfprintf(&f, fmt, ap); /* Use unlocked __vfprintf */ va_end(ap); -- cgit v1.1