From 7c59d098632e4382c9b674b189edbfd80d327682 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 24 Feb 2018 12:08:30 -0500 Subject: [PATCH] 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. --- src/stdio/vswprintf.c | 17 ++++++++--------- 1 file 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 -#include #include #include #include @@ -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) {