[Python-checkins] bpo-39465: Don't access directly _Py_Identifier members (GH-20043)
Victor Stinner
webhook-mailer at python.org
Mon May 11 19:43:58 EDT 2020
https://github.com/python/cpython/commit/4804b5b3df82e7892ca0550b02f902bcfc16bb48
commit: 4804b5b3df82e7892ca0550b02f902bcfc16bb48
branch: master
author: Victor Stinner <vstinner at python.org>
committer: GitHub <noreply at github.com>
date: 2020-05-12T01:43:38+02:00
summary:
bpo-39465: Don't access directly _Py_Identifier members (GH-20043)
* Replace id->object with _PyUnicode_FromId(&id)
* Use _Py_static_string_init(str) macro to initialize statically
name_op in typeobject.c.
files:
M Modules/_cursesmodule.c
M Objects/abstract.c
M Objects/typeobject.c
M Python/ceval.c
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 08991fd54808f..c70b0e2a19fad 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -3814,7 +3814,7 @@ update_lines_cols(void)
return 0;
}
/* PyId_LINES.object will be initialized here. */
- if (PyDict_SetItem(ModDict, PyId_LINES.object, o)) {
+ if (PyDict_SetItem(ModDict, _PyUnicode_FromId(&PyId_LINES), o)) {
Py_DECREF(m);
Py_DECREF(o);
return 0;
@@ -3830,7 +3830,7 @@ update_lines_cols(void)
Py_DECREF(o);
return 0;
}
- if (PyDict_SetItem(ModDict, PyId_COLS.object, o)) {
+ if (PyDict_SetItem(ModDict, _PyUnicode_FromId(&PyId_COLS), o)) {
Py_DECREF(m);
Py_DECREF(o);
return 0;
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 6e390dd92c3ae..b014f79e8d0fb 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2287,7 +2287,7 @@ method_output_as_list(PyObject *o, _Py_Identifier *meth_id)
PyErr_Format(PyExc_TypeError,
"%.200s.%U() returned a non-iterable (type %.200s)",
Py_TYPE(o)->tp_name,
- meth_id->object,
+ _PyUnicode_FromId(meth_id),
Py_TYPE(meth_output)->tp_name);
}
Py_DECREF(meth_output);
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index a36b4dcc46d21..243f8811b6257 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1519,7 +1519,7 @@ lookup_method(PyObject *self, _Py_Identifier *attrid, int *unbound)
{
PyObject *res = lookup_maybe_method(self, attrid, unbound);
if (res == NULL && !PyErr_Occurred()) {
- PyErr_SetObject(PyExc_AttributeError, attrid->object);
+ PyErr_SetObject(PyExc_AttributeError, _PyUnicode_FromId(attrid));
}
return res;
}
@@ -6864,12 +6864,12 @@ slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value)
}
static _Py_Identifier name_op[] = {
- {0, "__lt__", 0},
- {0, "__le__", 0},
- {0, "__eq__", 0},
- {0, "__ne__", 0},
- {0, "__gt__", 0},
- {0, "__ge__", 0}
+ _Py_static_string_init("__lt__"),
+ _Py_static_string_init("__le__"),
+ _Py_static_string_init("__eq__"),
+ _Py_static_string_init("__ne__"),
+ _Py_static_string_init("__gt__"),
+ _Py_static_string_init("__ge__"),
};
static PyObject *
diff --git a/Python/ceval.c b/Python/ceval.c
index 6435bd05446aa..e54e344a5fd51 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4414,7 +4414,7 @@ special_lookup(PyThreadState *tstate, PyObject *o, _Py_Identifier *id)
PyObject *res;
res = _PyObject_LookupSpecial(o, id);
if (res == NULL && !_PyErr_Occurred(tstate)) {
- _PyErr_SetObject(tstate, PyExc_AttributeError, id->object);
+ _PyErr_SetObject(tstate, PyExc_AttributeError, _PyUnicode_FromId(id));
return NULL;
}
return res;
More information about the Python-checkins
mailing list