mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
Issue #28512: Fixed setting the offset attribute of SyntaxError by
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().
This commit is contained in:
parent
49c14d8e8f
commit
8b58339eb2
7 changed files with 56 additions and 58 deletions
|
@ -1009,16 +1009,15 @@ PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int col_offset)
|
|||
PyErr_Clear();
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
tmp = NULL;
|
||||
if (col_offset >= 0) {
|
||||
tmp = PyLong_FromLong(col_offset);
|
||||
if (tmp == NULL)
|
||||
PyErr_Clear();
|
||||
else {
|
||||
if (_PyObject_SetAttrId(v, &PyId_offset, tmp))
|
||||
PyErr_Clear();
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
}
|
||||
if (_PyObject_SetAttrId(v, &PyId_offset, tmp ? tmp : Py_None))
|
||||
PyErr_Clear();
|
||||
Py_XDECREF(tmp);
|
||||
if (filename != NULL) {
|
||||
if (_PyObject_SetAttrId(v, &PyId_filename, filename))
|
||||
PyErr_Clear();
|
||||
|
@ -1030,9 +1029,6 @@ PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int col_offset)
|
|||
Py_DECREF(tmp);
|
||||
}
|
||||
}
|
||||
if (_PyObject_SetAttrId(v, &PyId_offset, Py_None)) {
|
||||
PyErr_Clear();
|
||||
}
|
||||
if (exc != PyExc_SyntaxError) {
|
||||
if (!_PyObject_HasAttrId(v, &PyId_msg)) {
|
||||
tmp = PyObject_Str(v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue