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 * PyObject *
PySequence_Fast(PyObject *v, const char *m) PySequence_Fast(PyObject *v, const char *m)
{ {
PyObject *it;
if (v == NULL) if (v == NULL)
return null_error(); return null_error();
@ -1504,9 +1506,15 @@ PySequence_Fast(PyObject *v, const char *m)
return v; return v;
} }
v = PySequence_Tuple(v); it = PyObject_GetIter(v);
if (v == NULL && PyErr_ExceptionMatches(PyExc_TypeError)) if (it == NULL) {
return type_error(m); if (PyErr_ExceptionMatches(PyExc_TypeError))
return type_error(m);
return NULL;
}
v = PySequence_Tuple(it);
Py_DECREF(it);
return v; return v;
} }