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 /editors | |
parent | 873b895d50d69a45b52bef85a8a4fb190f9c89ce (diff) | |
download | busybox-d50dda8c3501af9d593cd11272a15b480864a01c.tar.gz |
*: 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 'editors')
-rw-r--r-- | editors/diff.c | 9 | ||||
-rw-r--r-- | editors/sed.c | 8 |
2 files changed, 4 insertions, 13 deletions
diff --git a/editors/diff.c b/editors/diff.c index 4e51f6f76..26f352780 100644 --- a/editors/diff.c +++ b/editors/diff.c @@ -1289,14 +1289,9 @@ int diff_main(int argc ATTRIBUTE_UNUSED, char **argv) while (L_arg) { if (label1 && label2) bb_show_usage(); - if (!label1) - label1 = L_arg->data; - else { /* then label2 is NULL */ + if (label1) /* then label2 is NULL */ label2 = label1; - label1 = L_arg->data; - } - /* we leak L_arg here... */ - L_arg = L_arg->link; + label1 = llist_pop(&L_arg); } /* diff --git a/editors/sed.c b/editors/sed.c index 817840dc0..bf01fc630 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -1267,21 +1267,17 @@ int sed_main(int argc ATTRIBUTE_UNUSED, char **argv) if (opt & 0x2) G.regex_type |= REG_EXTENDED; // -r //if (opt & 0x4) G.be_quiet++; // -n while (opt_e) { // -e - add_cmd_block(opt_e->data); - opt_e = opt_e->link; - /* we leak opt_e here... */ + add_cmd_block(llist_pop(&opt_e)); } while (opt_f) { // -f char *line; FILE *cmdfile; - cmdfile = xfopen(opt_f->data, "r"); + cmdfile = xfopen(llist_pop(&opt_f), "r"); while ((line = xmalloc_fgetline(cmdfile)) != NULL) { add_cmd(line); free(line); } fclose(cmdfile); - opt_f = opt_f->link; - /* we leak opt_f here... */ } /* if we didn't get a pattern from -e or -f, use argv[0] */ if (!(opt & 0x18)) { |