*: 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
This commit is contained in:
Denis Vlasenko
2008-06-15 05:40:56 +00:00
parent 873b895d50
commit d50dda8c35
14 changed files with 19 additions and 49 deletions

View File

@ -1001,17 +1001,11 @@ int traceroute_main(int argc, char **argv)
#if ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE
if (source_route_list) {
llist_t *l_sr;
l_sr = source_route_list;
while (l_sr) {
while (source_route_list) {
if (lsrr >= NGATEWAYS)
bb_error_msg_and_die("no more than %d gateways", NGATEWAYS);
getaddr(gwlist + lsrr, l_sr->data);
getaddr(gwlist + lsrr, llist_pop(&source_route_list));
++lsrr;
l_sr = l_sr->link;
free(source_route_list);
source_route_list = l_sr;
}
optlen = (lsrr + 1) * sizeof(gwlist[0]);
}

View File

@ -259,12 +259,11 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSED, char **argv)
if (opt & OPT_o)
client_config.no_default_options = 1;
while (list_O) {
int n = index_in_strings(dhcp_option_strings, list_O->data);
int n = index_in_strings(dhcp_option_strings, llist_pop(&list_O));
if (n < 0)
bb_error_msg_and_die("unknown option '%s'", list_O->data);
n = dhcp_options[n].code;
client_config.opt_mask[n >> 3] |= 1 << (n & 7);
list_O = list_O->link;
}
if (read_interface(client_config.interface, &client_config.ifindex,

View File

@ -469,8 +469,7 @@ int wget_main(int argc ATTRIBUTE_UNUSED, char **argv)
}
extra_headers = cp = xmalloc(size);
while (headers_llist) {
cp += sprintf(cp, "%s\r\n", headers_llist->data);
headers_llist = headers_llist->link;
cp += sprintf(cp, "%s\r\n", (char*)llist_pop(&headers_llist));
}
}
#endif