Issue #18408: Fix _Py_DisplaySourceLine()

Report _Py_FindSourceFile() error, so the error is cleared;
and clear io.open(filename) exception on failure.
This commit is contained in:
Victor Stinner 2013-07-16 00:32:14 +02:00
parent 7eab0d000c
commit ceceaa00ba
1 changed files with 3 additions and 1 deletions

View File

@ -246,10 +246,12 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
binary = _PyObject_CallMethodId(io, &PyId_open, "Os", filename, "rb");
if (binary == NULL) {
PyErr_Clear();
binary = _Py_FindSourceFile(filename, buf, sizeof(buf), io);
if (binary == NULL) {
Py_DECREF(io);
return 0;
return -1;
}
}