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.
master
sin 2014-12-16 19:46:59 +00:00
parent a3e4689743
commit 0d7822f866
1 changed files with 4 additions and 16 deletions

20
cut.c
View File

@ -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;
}