Browse Source

bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)

pull/7273/head
Serhiy Storchaka 8 years ago
committed by GitHub
parent
commit
a5c42284e6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      Modules/_collectionsmodule.c
  2. 3
      Parser/asdl_c.py
  3. 3
      Python/Python-ast.c

7
Modules/_collectionsmodule.c

@ -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 *

3
Parser/asdl_c.py

@ -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

3
Python/Python-ast.c

@ -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

Loading…
Cancel
Save