]> granicus.if.org Git - python/commitdiff
bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 31 May 2018 05:31:21 +0000 (22:31 -0700)
committerGitHub <noreply@github.com>
Thu, 31 May 2018 05:31:21 +0000 (22:31 -0700)
(cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Modules/_collectionsmodule.c
Parser/asdl_c.py
Python/Python-ast.c

index 5753dd946a5ad5728f1d3e1c358dc27ea9a98d8f..4116d4053547014ec739b4981d068186b931c76f 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