]> granicus.if.org Git - python/commitdiff
sys.long_info attributes should be ints, not longs
authorMark Dickinson <dickinsm@gmail.com>
Thu, 2 Apr 2009 18:39:37 +0000 (18:39 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Thu, 2 Apr 2009 18:39:37 +0000 (18:39 +0000)
Lib/test/test_sys.py
Objects/longobject.c

index afeaf251b1c62ed1fbb62fb6f97eefb846d109ca..3493fd10e59b8561cc3d5513e8c064ced392d5ff 100644 (file)
@@ -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
index c172b0f9c3e837f207c881b8326e000f5fb2d963..dd22ce03fbb63c3d46f294989b95a5a1b2d5ecce 100644 (file)
@@ -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;