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 <benjamin@python.org>
This commit is contained in:
Andy Lester 2020-04-09 20:05:38 -05:00 committed by GitHub
parent 5cd2803009
commit 38ada3bac8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 6 deletions

View File

@ -2857,19 +2857,18 @@ PyObject *
PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases) PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
{ {
PyHeapTypeObject *res; PyHeapTypeObject *res;
PyMemberDef *memb;
PyObject *modname; PyObject *modname;
PyTypeObject *type, *base; PyTypeObject *type, *base;
PyType_Slot *slot; const PyType_Slot *slot;
Py_ssize_t nmembers, weaklistoffset, dictoffset; Py_ssize_t nmembers, weaklistoffset, dictoffset;
char *s, *res_start; char *res_start;
nmembers = weaklistoffset = dictoffset = 0; nmembers = weaklistoffset = dictoffset = 0;
for (slot = spec->slots; slot->slot; slot++) { for (slot = spec->slots; slot->slot; slot++) {
if (slot->slot == Py_tp_members) { if (slot->slot == Py_tp_members) {
nmembers = 0; nmembers = 0;
for (memb = slot->pfunc; memb->name != NULL; memb++) { for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) {
nmembers++; nmembers++;
if (strcmp(memb->name, "__weaklistoffset__") == 0) { if (strcmp(memb->name, "__weaklistoffset__") == 0) {
// The PyMemberDef must be a Py_ssize_t and readonly // 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 */ /* Set the type name and qualname */
s = strrchr(spec->name, '.'); const char *s = strrchr(spec->name, '.');
if (s == NULL) if (s == NULL)
s = (char*)spec->name; s = spec->name;
else else
s++; s++;