Fix two problems that emerged when the testsuite was run with an x64 build: PyLong_FromSSize_t incorrectly assumed an unsigned object, and itertools.count() had the wrong upper limit for the iterator.
This commit is contained in:
parent
b4c285a25b
commit
f4601d874f
|
@ -2073,9 +2073,9 @@ count_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
static PyObject *
|
||||
count_next(countobject *lz)
|
||||
{
|
||||
if (lz->cnt == LONG_MAX) {
|
||||
if (lz->cnt == PY_SSIZE_T_MAX) {
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"cannot count beyond LONG_MAX");
|
||||
"cannot count beyond PY_SSIZE_T_MAX");
|
||||
return NULL;
|
||||
}
|
||||
return PyInt_FromSsize_t(lz->cnt++);
|
||||
|
|
|
@ -893,7 +893,7 @@ _PyLong_FromSsize_t(Py_ssize_t ival)
|
|||
int one = 1;
|
||||
return _PyLong_FromByteArray(
|
||||
(unsigned char *)&bytes,
|
||||
SIZEOF_SIZE_T, IS_LITTLE_ENDIAN, 0);
|
||||
SIZEOF_SIZE_T, IS_LITTLE_ENDIAN, 1);
|
||||
}
|
||||
|
||||
/* Create a new long int object from a C size_t. */
|
||||
|
|
Loading…
Reference in New Issue