From 38ada3bac8205a7690d573d715b0e84e60297c4c Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Thu, 9 Apr 2020 20:05:38 -0500 Subject: [PATCH] bpo-39943: Keep constness of pointer objects. (19405) * Keep constness of pointer objects. Also moved an auto variable that got consted into its innermost necessary scope. * move def Co-authored-by: Benjamin Peterson --- Objects/typeobject.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index ca26d960643..bc42e2db220 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2857,19 +2857,18 @@ PyObject * PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases) { PyHeapTypeObject *res; - PyMemberDef *memb; PyObject *modname; PyTypeObject *type, *base; - PyType_Slot *slot; + const PyType_Slot *slot; Py_ssize_t nmembers, weaklistoffset, dictoffset; - char *s, *res_start; + char *res_start; nmembers = weaklistoffset = dictoffset = 0; for (slot = spec->slots; slot->slot; slot++) { if (slot->slot == Py_tp_members) { nmembers = 0; - for (memb = slot->pfunc; memb->name != NULL; memb++) { + for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) { nmembers++; if (strcmp(memb->name, "__weaklistoffset__") == 0) { // The PyMemberDef must be a Py_ssize_t and readonly @@ -2899,9 +2898,9 @@ PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases) } /* Set the type name and qualname */ - s = strrchr(spec->name, '.'); + const char *s = strrchr(spec->name, '.'); if (s == NULL) - s = (char*)spec->name; + s = spec->name; else s++;