mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
PyObject_GetIter can set an error for its self just fine
This commit is contained in:
parent
6b3f1ef190
commit
5515990ee1
1 changed files with 2 additions and 13 deletions
|
@ -968,14 +968,8 @@ builtin_map(PyObject *self, PyObject *args)
|
|||
/* Get iterator. */
|
||||
curseq = PyTuple_GetItem(args, i+1);
|
||||
sqp->it = PyObject_GetIter(curseq);
|
||||
if (sqp->it == NULL) {
|
||||
static char errmsg[] =
|
||||
"argument %d to map() must support iteration";
|
||||
char errbuf[sizeof(errmsg) + 25];
|
||||
PyOS_snprintf(errbuf, sizeof(errbuf), errmsg, i+2);
|
||||
PyErr_SetString(PyExc_TypeError, errbuf);
|
||||
if (sqp->it == NULL)
|
||||
goto Fail_2;
|
||||
}
|
||||
|
||||
/* Update len. */
|
||||
curlen = _PyObject_LengthHint(curseq, 8);
|
||||
|
@ -2463,13 +2457,8 @@ builtin_zip(PyObject *self, PyObject *args)
|
|||
for (i = 0; i < itemsize; ++i) {
|
||||
PyObject *item = PyTuple_GET_ITEM(args, i);
|
||||
PyObject *it = PyObject_GetIter(item);
|
||||
if (it == NULL) {
|
||||
if (PyErr_ExceptionMatches(PyExc_TypeError))
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"zip argument #%zd must support iteration",
|
||||
i+1);
|
||||
if (it == NULL)
|
||||
goto Fail_ret_itlist;
|
||||
}
|
||||
PyTuple_SET_ITEM(itlist, i, it);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue