summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-04-02 18:39:37 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-04-02 18:39:37 (GMT)
commit48e3fd240fc6338fbcbbc9c1c8a7d118faca924a (patch)
tree3e8d7be04be6eec29fbc21c2d6210692e291278d
parentd3f03fa715f9f82ab512a444f8452ac5e5c87d3a (diff)
downloadcpython-48e3fd240fc6338fbcbbc9c1c8a7d118faca924a.zip
cpython-48e3fd240fc6338fbcbbc9c1c8a7d118faca924a.tar.gz
cpython-48e3fd240fc6338fbcbbc9c1c8a7d118faca924a.tar.bz2
sys.long_info attributes should be ints, not longs
-rw-r--r--Lib/test/test_sys.py8
-rw-r--r--Objects/longobject.c6
2 files changed, 9 insertions, 5 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index afeaf25..3493fd1 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -340,6 +340,8 @@ class SysModuleTest(unittest.TestCase):
self.assertEqual(len(sys.long_info), 2)
self.assert_(sys.long_info.bits_per_digit % 5 == 0)
self.assert_(sys.long_info.sizeof_digit >= 1)
+ self.assertEqual(type(sys.long_info.bits_per_digit), int)
+ self.assertEqual(type(sys.long_info.sizeof_digit), int)
self.assert_(isinstance(sys.hexversion, int))
self.assert_(isinstance(sys.maxint, int))
if test.test_support.have_unicode:
@@ -606,9 +608,9 @@ class SizeofTest(unittest.TestCase):
check(1L, size(vh) + self.longdigit)
check(-1L, size(vh) + self.longdigit)
PyLong_BASE = 2**sys.long_info.bits_per_digit
- check(PyLong_BASE, size(vh) + 2*self.longdigit)
- check(PyLong_BASE**2-1, size(vh) + 2*self.longdigit)
- check(PyLong_BASE**2, size(vh) + 3*self.longdigit)
+ check(long(PyLong_BASE), size(vh) + 2*self.longdigit)
+ check(long(PyLong_BASE**2-1), size(vh) + 2*self.longdigit)
+ check(long(PyLong_BASE**2), size(vh) + 3*self.longdigit)
# module
check(unittest, size(h + 'P'))
# None
diff --git a/Objects/longobject.c b/Objects/longobject.c
index c172b0f..dd22ce0 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -3736,8 +3736,10 @@ PyLong_GetInfo(void)
long_info = PyStructSequence_New(&Long_InfoType);
if (long_info == NULL)
return NULL;
- PyStructSequence_SET_ITEM(long_info, field++, PyLong_FromLong(PyLong_SHIFT));
- PyStructSequence_SET_ITEM(long_info, field++, PyLong_FromLong(sizeof(digit)));
+ PyStructSequence_SET_ITEM(long_info, field++,
+ PyInt_FromLong(PyLong_SHIFT));
+ PyStructSequence_SET_ITEM(long_info, field++,
+ PyInt_FromLong(sizeof(digit)));
if (PyErr_Occurred()) {
Py_CLEAR(long_info);
return NULL;