sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 0d7822f8662747f2bb8a659469e39d545c388583
parent a3e46897430dd1037f280c8e650dfc08f0e4f822
Author: sin <sin@2f30.org>
Date:   Tue, 16 Dec 2014 19:46:59 +0000

Don't free the line buffer for each file

There's no point free-ing memory when the kernel can do it for us.
Just reuse the already allocated memory to hold lines.

Thanks Truls Becken for pointing this out.

Diffstat:
Mcut.c | 20++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/cut.c b/cut.c @@ -74,18 +74,6 @@ parselist(char *str) } } -static void -freelist(void) { - Range *l = list, *next; - - while (l) { - next = l->next; - free(l); - l->next = NULL; - l = next; - } -} - static size_t seek(const char *s, size_t pos, size_t *prev, size_t count) { @@ -116,8 +104,10 @@ seek(const char *s, size_t pos, size_t *prev, size_t count) static void cut(FILE *fp) { - char *buf = NULL, *s; - size_t size = 0, i, n, p; + static char *buf = NULL; + static size_t size = 0; + char *s; + size_t i, n, p; ssize_t len; Range *r; @@ -143,7 +133,6 @@ cut(FILE *fp) } putchar('\n'); } - free(buf); } int @@ -190,6 +179,5 @@ main(int argc, char *argv[]) fclose(fp); } } - freelist(); return 0; }