*: 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

@@ -88,7 +88,7 @@ int rtnl_rtntype_a2n(int *id, char *arg)
res = RTN_THROW;
else {
res = strtoul(arg, &end, 0);
if (!end || end == arg || *end || res > 255)
if (end == arg || *end || res > 255)
return -1;
}
*id = res;

View File

@@ -22,6 +22,7 @@ unsigned get_unsigned(char *arg, const char *errmsg)
if (*arg) {
res = strtoul(arg, &ptr, 0);
//FIXME: "" will be accepted too, is it correct?!
if (!*ptr && res <= UINT_MAX) {
return res;
}
@@ -36,6 +37,7 @@ uint32_t get_u32(char *arg, const char *errmsg)
if (*arg) {
res = strtoul(arg, &ptr, 0);
//FIXME: "" will be accepted too, is it correct?!
if (!*ptr && res <= 0xFFFFFFFFUL) {
return res;
}
@@ -50,6 +52,7 @@ uint16_t get_u16(char *arg, const char *errmsg)
if (*arg) {
res = strtoul(arg, &ptr, 0);
//FIXME: "" will be accepted too, is it correct?!
if (!*ptr && res <= 0xFFFF) {
return res;
}