提交 74fa4aac 编写于 作者: R Rich Felker

combine two calls to memset in fmemopen

this idea came up when I thought we might need to zero the UNGET
portion of buf as well, but it seems like a useful improvement even
when that turned out not to be necessary.
上级 086542fb
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stddef.h>
#include <inttypes.h> #include <inttypes.h>
#include "libc.h" #include "libc.h"
...@@ -95,7 +96,7 @@ FILE *fmemopen(void *restrict buf, size_t size, const char *restrict mode) ...@@ -95,7 +96,7 @@ FILE *fmemopen(void *restrict buf, size_t size, const char *restrict mode)
f = malloc(sizeof *f + (buf?0:size)); f = malloc(sizeof *f + (buf?0:size));
if (!f) return 0; if (!f) return 0;
memset(&f->f, 0, sizeof f->f); memset(f, 0, offsetof(struct mem_FILE, buf));
f->f.cookie = &f->c; f->f.cookie = &f->c;
f->f.fd = -1; f->f.fd = -1;
f->f.lbf = EOF; f->f.lbf = EOF;
...@@ -106,7 +107,6 @@ FILE *fmemopen(void *restrict buf, size_t size, const char *restrict mode) ...@@ -106,7 +107,6 @@ FILE *fmemopen(void *restrict buf, size_t size, const char *restrict mode)
memset(buf, 0, size); memset(buf, 0, size);
} }
memset(&f->c, 0, sizeof f->c);
f->c.buf = buf; f->c.buf = buf;
f->c.size = size; f->c.size = size;
f->c.mode = *mode; f->c.mode = *mode;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册