diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 05:40:56 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 05:40:56 +0000 |
commit | d50dda8c3501af9d593cd11272a15b480864a01c (patch) | |
tree | 652da97787e8e86f876b647ca9dab4b6b64fe291 /archival | |
parent | 873b895d50d69a45b52bef85a8a4fb190f9c89ce (diff) | |
download | busybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.tar.gz busybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.tar.bz2 busybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.zip |
*: 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')
-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, | |||
659 | static llist_t *append_file_list_to_list(llist_t *list) | 659 | static llist_t *append_file_list_to_list(llist_t *list) |
660 | { | 660 | { |
661 | FILE *src_stream; | 661 | FILE *src_stream; |
662 | llist_t *cur = list; | ||
663 | llist_t *tmp; | ||
664 | char *line; | 662 | char *line; |
665 | llist_t *newlist = NULL; | 663 | llist_t *newlist = NULL; |
666 | 664 | ||
667 | while (cur) { | 665 | while (list) { |
668 | src_stream = xfopen(cur->data, "r"); | 666 | src_stream = xfopen(llist_pop(&list), "r"); |
669 | tmp = cur; | ||
670 | cur = cur->link; | ||
671 | free(tmp); | ||
672 | while ((line = xmalloc_fgetline(src_stream)) != NULL) { | 667 | while ((line = xmalloc_fgetline(src_stream)) != NULL) { |
673 | /* kill trailing '/' unless the string is just "/" */ | 668 | /* kill trailing '/' unless the string is just "/" */ |
674 | char *cp = last_char_is(line, '/'); | 669 | char *cp = last_char_is(line, '/'); |