diff options
author | Rich Felker <dalias@aerifal.cx> | 2018-02-24 12:08:30 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-02-24 12:08:30 -0500 |
commit | 7c59d098632e4382c9b674b189edbfd80d327682 (patch) | |
tree | b2f00997792a8f2dbde5691f6d6d847485810aef /src | |
parent | aaa29c26eed4a09625e61c6af31d16b1a4163fc3 (diff) | |
download | musl-7c59d098632e4382c9b674b189edbfd80d327682.tar.gz musl-7c59d098632e4382c9b674b189edbfd80d327682.tar.bz2 musl-7c59d098632e4382c9b674b189edbfd80d327682.tar.xz musl-7c59d098632e4382c9b674b189edbfd80d327682.zip |
in vswprintf, initialize the FILE rather than memset-and-assign
this is the idiom that's used elsewhere and should be more efficient
or at least no worse.
Diffstat (limited to 'src')
-rw-r--r-- | src/stdio/vswprintf.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/stdio/vswprintf.c b/src/stdio/vswprintf.c index 6eb2f6ac..38efed65 100644 --- a/src/stdio/vswprintf.c +++ b/src/stdio/vswprintf.c @@ -1,6 +1,5 @@ #include "stdio_impl.h" #include <limits.h> -#include <string.h> #include <errno.h> #include <stdint.h> #include <wchar.h> @@ -37,17 +36,17 @@ static size_t sw_write(FILE *f, const unsigned char *s, size_t l) int vswprintf(wchar_t *restrict s, size_t n, const wchar_t *restrict fmt, va_list ap) { int r; - FILE f; unsigned char buf[256]; struct cookie c = { s, n-1 }; + FILE f = { + .lbf = EOF, + .write = sw_write, + .lock = -1, + .buf = buf, + .buf_size = sizeof buf, + .cookie = &c, + }; - memset(&f, 0, sizeof(FILE)); - f.lbf = EOF; - f.write = sw_write; - f.buf_size = sizeof buf; - f.buf = buf; - f.lock = -1; - f.cookie = &c; if (!n) { return -1; } else if (n > INT_MAX) { |