]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39943: Keep constness of pointer objects. (19405)
authorAndy Lester <andy@petdance.com>
Fri, 10 Apr 2020 01:05:38 +0000 (20:05 -0500)
committerGitHub <noreply@github.com>
Fri, 10 Apr 2020 01:05:38 +0000 (20:05 -0500)
* 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>
Objects/typeobject.c

index ca26d960643e2a7f892b0e6bce7101a21b22ca01..bc42e2db22079c2b2e58c91ca8f70cafc38d6b92 100644 (file)
@@ -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++;