diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2010-01-16 18:06:17 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2010-01-16 18:06:17 (GMT) |
commit | 18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf (patch) | |
tree | 15e0eb9d83ae7a9aaad84496108efe6a28d9421a | |
parent | 811ff822f8cd87cf29867118cb3a74c5035a1a94 (diff) | |
download | cpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.zip cpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.tar.gz cpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.tar.bz2 |
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.
-rw-r--r-- | Python/dtoa.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Python/dtoa.c b/Python/dtoa.c index aa577f2..9eb8cdb 100644 --- a/Python/dtoa.c +++ b/Python/dtoa.c @@ -1345,7 +1345,8 @@ _Py_dg_strtod(const char *s00, char **se) 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 @@ _Py_dg_strtod(const char *s00, char **se) 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; } |