Mercurial > cpython-lru_cache-weakref
diff Python/bltinmodule.c @ 55871:37f5d1785bb3 legacy-trunk
revert r74699 since it loses useful error information
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Mon, 07 Sep 2009 13:02:15 +0000 |
| parents | dc7217cb73b7 |
| children | 6e4d8968e246 |
line wrap: on
line diff
--- a/Python/bltinmodule.c Mon Sep 07 06:12:00 2009 +0000 +++ b/Python/bltinmodule.c Mon Sep 07 13:02:15 2009 +0000 @@ -968,8 +968,14 @@ /* Get iterator. */ curseq = PyTuple_GetItem(args, i+1); sqp->it = PyObject_GetIter(curseq); - if (sqp->it == NULL) + 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); goto Fail_2; + } /* Update len. */ curlen = _PyObject_LengthHint(curseq, 8); @@ -2457,8 +2463,13 @@ for (i = 0; i < itemsize; ++i) { PyObject *item = PyTuple_GET_ITEM(args, i); PyObject *it = PyObject_GetIter(item); - if (it == NULL) + if (it == NULL) { + if (PyErr_ExceptionMatches(PyExc_TypeError)) + PyErr_Format(PyExc_TypeError, + "zip argument #%zd must support iteration", + i+1); goto Fail_ret_itlist; + } PyTuple_SET_ITEM(itlist, i, it); }
