bpo-32381: Rewrite PyErr_ProgramText() (GH-23700)
PyErr_ProgramText() now calls PyErr_ProgramTextObject().
This commit is contained in:
parent
6d3dfee271
commit
815506d852
|
@ -1697,13 +1697,18 @@ after_loop:
|
||||||
PyObject *
|
PyObject *
|
||||||
PyErr_ProgramText(const char *filename, int lineno)
|
PyErr_ProgramText(const char *filename, int lineno)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
if (filename == NULL) {
|
||||||
if (filename == NULL || *filename == '\0' || lineno <= 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
PyThreadState *tstate = _PyThreadState_GET();
|
|
||||||
fp = _Py_fopen(filename, "r" PY_STDIOTEXTMODE);
|
PyObject *filename_obj = PyUnicode_DecodeFSDefault(filename);
|
||||||
return err_programtext(tstate, fp, lineno);
|
if (filename_obj == NULL) {
|
||||||
|
PyErr_Clear();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
PyObject *res = PyErr_ProgramTextObject(filename_obj, lineno);
|
||||||
|
Py_DECREF(filename_obj);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *
|
PyObject *
|
||||||
|
|
Loading…
Reference in New Issue