Commit 029656fb authored by Martin v. Löwis's avatar Martin v. Löwis

Issue #3236: Return small longs from PyLong_FromString.

parent 2f5799b7
......@@ -95,6 +95,9 @@ class IntTestCases(unittest.TestCase):
self.assertRaises(ValueError, int, "0b", 2)
self.assertRaises(ValueError, int, "0b", 0)
# Bug #3236: Return small longs from PyLong_FromString
self.assert_(int("10") is 10)
self.assert_(int("-1") is -1)
# SF bug 1334662: int(string, base) wrong answers
# Various representations of 2**32 evaluated to 0
......
......@@ -12,6 +12,8 @@ What's new in Python 3.0b2?
Core and Builtins
-----------------
- Issue #3236: Return small longs from PyLong_FromString.
Library
-------
......
......@@ -1981,6 +1981,14 @@ digit beyond the first.
goto onError;
if (pend)
*pend = str;
long_normalize(z);
if (ABS(Py_SIZE(z)) <= 1) {
long res = MEDIUM_VALUE(z);
if (-NSMALLPOSINTS <= res && res <= NSMALLPOSINTS) {
Py_DECREF(z);
return PyLong_FromLong(res);
}
}
return (PyObject *) z;
onError:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment