diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-05-31 06:10:28 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2018-05-31 06:10:28 (GMT) |
commit | 0fe3be03926c3468ed4c10980d1a030c8ef4e37e (patch) | |
tree | cc2182081f4995eaacea6fccdd337b878bd87663 | |
parent | c2870b699eb899f358b843c2d706ce8ca89b2bf4 (diff) | |
download | cpython-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.c | 7 | ||||
-rw-r--r-- | Parser/asdl_c.py | 3 | ||||
-rw-r--r-- | Python/Python-ast.c | 3 |
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 |