972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
|
intmax_t num = 0;
if (string[0] == '-')
i++;
for (; i < length; i++) {
if (string[i] >= '0' && string[i] <= '9') {
intmax_t newnum = (num * 10) + (string[i] - '0');
if (newnum < num)
@throw [OFOutOfRangeException
newWithClass: isa];
num = newnum;
} else
@throw [OFInvalidEncodingException newWithClass: isa];
}
if (string[0] == '-')
num *= -1;
|
<
|
|
|
|
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
|
intmax_t num = 0;
if (string[0] == '-')
i++;
for (; i < length; i++) {
if (string[i] >= '0' && string[i] <= '9') {
if (INTMAX_MAX / 10 < num ||
INTMAX_MAX - num * 10 < string[i] - '0')
@throw [OFOutOfRangeException
newWithClass: isa];
num = (num * 10) + (string[i] - '0');
} else
@throw [OFInvalidEncodingException newWithClass: isa];
}
if (string[0] == '-')
num *= -1;
|