Mercurial > cpython-lru_cache-weakref
diff Python/dtoa.c @ 58358:5c32f3b65d21 legacy-trunk
Fix multiple uses of variable 'L' in _Py_dg_strtod, where one use requires an unsigned long and the other a signed long. See also r77421.
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Sat, 16 Jan 2010 18:06:17 +0000 |
| parents | 8e179a0fcb5e |
| children | 7322c5691294 |
line wrap: on
line diff
--- a/Python/dtoa.c Sat Jan 16 17:57:49 2010 +0000 +++ b/Python/dtoa.c Sat Jan 16 18:06:17 2010 +0000 @@ -1345,7 +1345,8 @@ const char *s, *s0, *s1; double aadj, aadj1; U aadj2, adj, rv, rv0; - ULong y, z, L; + ULong y, z, abse; + Long L; BCinfo bc; Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; @@ -1425,17 +1426,17 @@ while(c == '0') c = *++s; if (c > '0' && c <= '9') { - L = c - '0'; + abse = c - '0'; s1 = s; while((c = *++s) >= '0' && c <= '9') - L = 10*L + c - '0'; - if (s - s1 > 8 || L > MAX_ABS_EXP) + abse = 10*abse + c - '0'; + if (s - s1 > 8 || abse > MAX_ABS_EXP) /* Avoid confusion from exponents * so large that e might overflow. */ e = (int)MAX_ABS_EXP; /* safe for 16 bit ints */ else - e = (int)L; + e = (int)abse; if (esign) e = -e; }
