SF Patch #871704: Py_SequenceFast can mask errors

(Contributed by Greg Chapman.)

Since this only changes the error message, I doubt that it should be
backported.
This commit is contained in:
Raymond Hettinger 2004-01-11 23:26:51 +00:00
parent 44a98237d8
commit 2fb702966c
1 changed files with 11 additions and 3 deletions

View File

@ -1496,6 +1496,8 @@ PySequence_List(PyObject *v)
PyObject *
PySequence_Fast(PyObject *v, const char *m)
{
PyObject *it;
if (v == NULL)
return null_error();
@ -1504,9 +1506,15 @@ PySequence_Fast(PyObject *v, const char *m)
return v;
}
v = PySequence_Tuple(v);
if (v == NULL && PyErr_ExceptionMatches(PyExc_TypeError))
return type_error(m);
it = PyObject_GetIter(v);
if (it == NULL) {
if (PyErr_ExceptionMatches(PyExc_TypeError))
return type_error(m);
return NULL;
}
v = PySequence_Tuple(it);
Py_DECREF(it);
return v;
}