From fb85f99c0a5bb330178d29d582aedc07b1a0f5db Mon Sep 17 00:00:00 2001 From: sin Date: Tue, 16 Dec 2014 20:20:41 +0000 Subject: [PATCH] grep: Reuse allocated buffers --- grep.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/grep.c b/grep.c index 86b8ca5..1376940 100644 --- a/grep.c +++ b/grep.c @@ -177,15 +177,15 @@ addpattern(const char *pattern) static void addpatternfile(FILE *fp) { - char *buf = NULL; - size_t len = 0, size = 0; + static char *buf = NULL; + static size_t size = 0; + size_t len = 0; while ((len = getline(&buf, &size, fp)) != -1) { if (len && buf[len - 1] == '\n') buf[len - 1] = '\0'; addpattern(buf); } - free(buf); if (ferror(fp)) enprintf(Error, "read error:"); } @@ -193,8 +193,9 @@ addpatternfile(FILE *fp) static int grep(FILE *fp, const char *str) { - char *buf = NULL; - size_t len = 0, size = 0; + static char *buf = NULL; + static size_t size = 0; + size_t len = 0; long c = 0, n; struct pattern *pnode; int match = NoMatch; @@ -250,6 +251,5 @@ end: weprintf("%s: read error:", str); match = Error; } - free(buf); return match; }