From db1074244d2c12961799f6f9353ae191f59cc497 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 31 May 2018 10:32:43 +0300 Subject: [PATCH] [2.7] bpo-33677: Fix the signature of tp_clear handler for deque. (GH-7196). (GH-7277) (cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012) --- Modules/_collectionsmodule.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index 2e4da4c211f8..9364aba549b1 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -639,7 +639,7 @@ deque_remove(dequeobject *deque, PyObject *value) PyDoc_STRVAR(remove_doc, "D.remove(value) -- remove first occurrence of value."); -static void +static int deque_clear(dequeobject *deque) { block *b; @@ -650,7 +650,7 @@ deque_clear(dequeobject *deque) PyObject *item; if (deque->len == 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 @@ -701,7 +701,7 @@ deque_clear(dequeobject *deque) } assert(leftblock->rightlink == NULL); freeblock(leftblock); - return; + return 0; alternate_method: while (deque->len) { @@ -709,6 +709,7 @@ deque_clear(dequeobject *deque) assert (item != NULL); Py_DECREF(item); } + return 0; } static PyObject * -- 2.47.3