*: optimize code size in strtoul calls

function                                             old     new   delta
bb_parse_mode                                        433     431      -2
rtnl_rtntype_a2n                                     202     198      -4
ParseField                                           511     498     -13
bb_init_module_24                                   4730    4675     -55
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-74)             Total: -74 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2009-09-23 17:17:53 +02:00
parent 8d338173a4
commit 1f27ab0d4b
8 changed files with 37 additions and 23 deletions

View File

@ -320,11 +320,13 @@ static void ParseField(char *user, char *ary, int modvalue, int off,
skip = 1;
++ptr;
} else if (isdigit(*ptr)) {
char *endp;
if (n1 < 0) {
n1 = strtol(ptr, &ptr, 10) + off;
n1 = strtol(ptr, &endp, 10) + off;
} else {
n2 = strtol(ptr, &ptr, 10) + off;
n2 = strtol(ptr, &endp, 10) + off;
}
ptr = endp; /* gcc likes temp var for &endp */
skip = 1;
} else if (names) {
int i;
@ -361,7 +363,9 @@ static void ParseField(char *user, char *ary, int modvalue, int off,
n2 = n1;
}
if (*ptr == '/') {
skip = strtol(ptr + 1, &ptr, 10);
char *endp;
skip = strtol(ptr + 1, &endp, 10);
ptr = endp; /* gcc likes temp var for &endp */
}
/*