diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 09:40:56 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 09:40:56 +0400 |
commit | d50dda8c3501af9d593cd11272a15b480864a01c (patch) | |
tree | 652da97787e8e86f876b647ca9dab4b6b64fe291 /archival/tar.c | |
parent | 873b895d50d69a45b52bef85a8a4fb190f9c89ce (diff) |
*: use llist_pop for traverse-and-free list operation
function old new delta
append_file_list_to_list 109 111 +2
udhcpc_main 2414 2413 -1
run_parts_main 325 324 -1
od_main 2324 2323 -1
getopt_main 709 707 -2
env_main 253 251 -2
sed_main 659 656 -3
ps_main 522 519 -3
traceroute_main 3960 3954 -6
sort_main 844 838 -6
diff_main 866 858 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/10 up/down: 2/-33) Total: -31 bytes
Diffstat (limited to 'archival/tar.c')
-rw-r--r-- | archival/tar.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/archival/tar.c b/archival/tar.c index 64a4e35be..0162e0623 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -659,16 +659,11 @@ int writeTarFile(int tar_fd, int verboseFlag, static llist_t *append_file_list_to_list(llist_t *list) { FILE *src_stream; - llist_t *cur = list; - llist_t *tmp; char *line; llist_t *newlist = NULL; - while (cur) { - src_stream = xfopen(cur->data, "r"); - tmp = cur; - cur = cur->link; - free(tmp); + while (list) { + src_stream = xfopen(llist_pop(&list), "r"); while ((line = xmalloc_fgetline(src_stream)) != NULL) { /* kill trailing '/' unless the string is just "/" */ char *cp = last_char_is(line, '/'); |