* regression bug, count_next was coercing a Py_ssize_t to an unsigned Py_size_t

which breaks negative counts
* added test for negative numbers
will backport to 2.5.1
This commit is contained in:
Jack Diederich 2006-09-21 17:50:26 +00:00
parent d14bf61d05
commit 36234e8f66
2 changed files with 5 additions and 1 deletions

View file

@ -58,6 +58,10 @@ class TestBasicOps(unittest.TestCase):
self.assertEqual(repr(c), 'count(3)')
c.next()
self.assertEqual(repr(c), 'count(4)')
c = count(-9)
self.assertEqual(repr(c), 'count(-9)')
c.next()
self.assertEqual(c.next(), -8)
def test_cycle(self):
self.assertEqual(take(10, cycle('abc')), list('abcabcabca'))

View file

@ -2072,7 +2072,7 @@ count_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static PyObject *
count_next(countobject *lz)
{
return PyInt_FromSize_t(lz->cnt++);
return PyInt_FromSsize_t(lz->cnt++);
}
static PyObject *