optimize 16- and 32-bit moves
function old new delta udhcpd_main 1239 1257 +18 udhcp_add_simple_option 93 92 -1 buffer_read_le_u32 19 18 -1 unpack_gz_stream_with_info 526 520 -6 dnsd_main 1470 1463 -7 udhcp_run_script 1208 1186 -22 send_ACK 255 229 -26 arping_main 1661 1623 -38 send_offer 470 428 -42 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/8 up/down: 18/-143) Total: -125 bytes
This commit is contained in:
@ -43,6 +43,8 @@ const char *ll_addr_n2a(unsigned char *addr, int alen, int type, char *buf, int
|
||||
|
||||
int ll_addr_a2n(unsigned char *lladdr, int len, char *arg)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (strchr(arg, '.')) {
|
||||
inet_prefix pfx;
|
||||
if (get_addr_1(&pfx, arg, AF_INET)) {
|
||||
@ -54,26 +56,24 @@ int ll_addr_a2n(unsigned char *lladdr, int len, char *arg)
|
||||
}
|
||||
memcpy(lladdr, pfx.data, 4);
|
||||
return 4;
|
||||
} else {
|
||||
int i;
|
||||
|
||||
for (i=0; i<len; i++) {
|
||||
int temp;
|
||||
char *cp = strchr(arg, ':');
|
||||
if (cp) {
|
||||
*cp = 0;
|
||||
cp++;
|
||||
}
|
||||
if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) {
|
||||
bb_error_msg("\"%s\" is invalid lladdr", arg);
|
||||
return -1;
|
||||
}
|
||||
lladdr[i] = temp;
|
||||
if (!cp) {
|
||||
break;
|
||||
}
|
||||
arg = cp;
|
||||
}
|
||||
return i+1;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
int temp;
|
||||
char *cp = strchr(arg, ':');
|
||||
if (cp) {
|
||||
*cp = 0;
|
||||
cp++;
|
||||
}
|
||||
if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) {
|
||||
bb_error_msg("\"%s\" is invalid lladdr", arg);
|
||||
return -1;
|
||||
}
|
||||
lladdr[i] = temp;
|
||||
if (!cp) {
|
||||
break;
|
||||
}
|
||||
arg = cp;
|
||||
}
|
||||
return i+1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user