mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Merge in r68394 fixing itertools.permutations() and combinations().
This commit is contained in:
parent
5e4e4278c9
commit
5bad41eefc
3 changed files with 47 additions and 22 deletions
|
|
@ -1880,10 +1880,6 @@ combinations_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
PyErr_SetString(PyExc_ValueError, "r must be non-negative");
|
||||
goto error;
|
||||
}
|
||||
if (r > n) {
|
||||
PyErr_SetString(PyExc_ValueError, "r cannot be bigger than the iterable");
|
||||
goto error;
|
||||
}
|
||||
|
||||
indices = PyMem_Malloc(r * sizeof(Py_ssize_t));
|
||||
if (indices == NULL) {
|
||||
|
|
@ -1903,7 +1899,7 @@ combinations_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
co->indices = indices;
|
||||
co->result = NULL;
|
||||
co->r = r;
|
||||
co->stopped = 0;
|
||||
co->stopped = r > n ? 1 : 0;
|
||||
|
||||
return (PyObject *)co;
|
||||
|
||||
|
|
@ -2143,10 +2139,6 @@ permutations_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
PyErr_SetString(PyExc_ValueError, "r must be non-negative");
|
||||
goto error;
|
||||
}
|
||||
if (r > n) {
|
||||
PyErr_SetString(PyExc_ValueError, "r cannot be bigger than the iterable");
|
||||
goto error;
|
||||
}
|
||||
|
||||
indices = PyMem_Malloc(n * sizeof(Py_ssize_t));
|
||||
cycles = PyMem_Malloc(r * sizeof(Py_ssize_t));
|
||||
|
|
@ -2170,7 +2162,7 @@ permutations_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
po->cycles = cycles;
|
||||
po->result = NULL;
|
||||
po->r = r;
|
||||
po->stopped = 0;
|
||||
po->stopped = r > n ? 1 : 0;
|
||||
|
||||
return (PyObject *)po;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue