summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2018-05-31 06:10:28 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2018-05-31 06:10:28 (GMT)
commit0fe3be03926c3468ed4c10980d1a030c8ef4e37e (patch)
treecc2182081f4995eaacea6fccdd337b878bd87663
parentc2870b699eb899f358b843c2d706ce8ca89b2bf4 (diff)
downloadcpython-0fe3be03926c3468ed4c10980d1a030c8ef4e37e.zip
cpython-0fe3be03926c3468ed4c10980d1a030c8ef4e37e.tar.gz
cpython-0fe3be03926c3468ed4c10980d1a030c8ef4e37e.tar.bz2
bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196) (GH-7269)
(cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-rw-r--r--Modules/_collectionsmodule.c7
-rw-r--r--Parser/asdl_c.py3
-rw-r--r--Python/Python-ast.c3
3 files changed, 8 insertions, 5 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index af20d6e..d7b344b 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -574,7 +574,7 @@ deque_concat(dequeobject *deque, PyObject *other)
return new_deque;
}
-static void
+static int
deque_clear(dequeobject *deque)
{
block *b;
@@ -586,7 +586,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
@@ -647,7 +647,7 @@ deque_clear(dequeobject *deque)
}
CHECK_END(leftblock->rightlink);
freeblock(leftblock);
- return;
+ return 0;
alternate_method:
while (Py_SIZE(deque)) {
@@ -655,6 +655,7 @@ deque_clear(dequeobject *deque)
assert (item != NULL);
Py_DECREF(item);
}
+ return 0;
}
static PyObject *
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 6302af6..90c5fea 100644
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -643,10 +643,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
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 212211c..8e383ad 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -525,10 +525,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