mirror of git://git.musl-libc.org/musl
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.
This commit is contained in:
parent
aaa29c26ee
commit
7c59d09863
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue