mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-12 09:24:07 +00:00
Fix tonumber("-0").
Reported by bluecheetah001.
This commit is contained in:
parent
de48d00094
commit
45a7e5073c
@ -445,12 +445,11 @@ StrScanFmt lj_strscan_scan(const uint8_t *p, TValue *o, uint32_t opt)
|
|||||||
/* Fast path for decimal 32 bit integers. */
|
/* Fast path for decimal 32 bit integers. */
|
||||||
if (fmt == STRSCAN_INT && base == 10 &&
|
if (fmt == STRSCAN_INT && base == 10 &&
|
||||||
(dig < 10 || (dig == 10 && *sp <= '2' && x < 0x80000000u+neg))) {
|
(dig < 10 || (dig == 10 && *sp <= '2' && x < 0x80000000u+neg))) {
|
||||||
int32_t y = neg ? -(int32_t)x : (int32_t)x;
|
|
||||||
if ((opt & STRSCAN_OPT_TONUM)) {
|
if ((opt & STRSCAN_OPT_TONUM)) {
|
||||||
o->n = (double)y;
|
o->n = neg ? -(double)x : (double)x;
|
||||||
return STRSCAN_NUM;
|
return STRSCAN_NUM;
|
||||||
} else {
|
} else {
|
||||||
o->i = y;
|
o->i = neg ? -(int32_t)x : (int32_t)x;
|
||||||
return STRSCAN_INT;
|
return STRSCAN_INT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user