bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 31 May 2018 04:34:34 +0000 (07:34 +0300)
committerGitHub <noreply@github.com>
Thu, 31 May 2018 04:34:34 +0000 (07:34 +0300)
Modules/_collectionsmodule.c
Parser/asdl_c.py
Python/Python-ast.c

index 55132e786d5bf2a098fadd3409ad38d3fb9b8b39..65d556c5a0e5b4cb62ff79c2700a2cdc3e884252 100644 (file)
@@ -575,7 +575,7 @@ deque_concat(dequeobject *deque, PyObject *other)
     return new_deque;
 }
 
-static void
+static int
 deque_clear(dequeobject *deque)
 {
     block *b;
@@ -587,7 +587,7 @@ deque_clear(dequeobject *deque)
     PyObject **itemptr, **limit;
 
     if (Py_SIZE(deque) == 0)
-        return;
+        return 0;
 
     /* During the process of clearing a deque, decrefs can cause the
        deque to mutate.  To avoid fatal confusion, we have to make the
@@ -648,7 +648,7 @@ deque_clear(dequeobject *deque)
     }
     CHECK_END(leftblock->rightlink);
     freeblock(leftblock);
-    return;
+    return 0;
 
   alternate_method:
     while (Py_SIZE(deque)) {
@@ -656,6 +656,7 @@ deque_clear(dequeobject *deque)
         assert (item != NULL);
         Py_DECREF(item);
     }
+    return 0;
 }
 
 static PyObject *
index 399e79e0597f9af8f838a56c5da89620aecc18d4..44e3d40c61553926a44436988479c387618579d1 100644 (file)
@@ -647,10 +647,11 @@ ast_traverse(AST_object *self, visitproc visit, void *arg)
     return 0;
 }
 
-static void
+static int
 ast_clear(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    return 0;
 }
 
 static int
index 38b9292577f247f97ad371cbb08b90ba4c39c07f..6a2f28e0e712d52c3aed471202e5a21dec539e95 100644 (file)
@@ -528,10 +528,11 @@ ast_traverse(AST_object *self, visitproc visit, void *arg)
     return 0;
 }
 
-static void
+static int
 ast_clear(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    return 0;
 }
 
 static int