]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Fix tonumber("-0").
authorMike Pall <mike>
Sun, 8 Dec 2019 18:51:33 +0000 (19:51 +0100)
committerMike Pall <mike>
Sun, 8 Dec 2019 18:51:33 +0000 (19:51 +0100)
Reported by bluecheetah001.

src/lj_strscan.c

index f1e34a3df53205ad4bd69b9049809b609495e2e9..1ae68c3f8c2a5d7f9e7d679a1a843c7347ffc266 100644 (file)
@@ -445,12 +445,11 @@ StrScanFmt lj_strscan_scan(const uint8_t *p, TValue *o, uint32_t opt)
     /* Fast path for decimal 32 bit integers. */
     if (fmt == STRSCAN_INT && base == 10 &&
        (dig < 10 || (dig == 10 && *sp <= '2' && x < 0x80000000u+neg))) {
-      int32_t y = neg ? -(int32_t)x : (int32_t)x;
       if ((opt & STRSCAN_OPT_TONUM)) {
-       o->n = (double)y;
+       o->n = neg ? -(double)x : (double)x;
        return STRSCAN_NUM;
       } else {
-       o->i = y;
+       o->i = neg ? -(int32_t)x : (int32_t)x;
        return STRSCAN_INT;
       }
     }