summaryrefslogtreecommitdiff
path: root/Modules/_functoolsmodule.c
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2011-04-05 17:25:14 -0500
committerBenjamin Peterson <benjamin@python.org>2011-04-05 17:25:14 -0500
commit3bd9729dc92ad3fc57aee17479231eb426fd076f (patch)
treec9dfbc2ebe0e6f2785b12286d4b58ddfb17430d8 /Modules/_functoolsmodule.c
parente21a596d51b156745202975524c79f450c6e0e71 (diff)
downloadcpython-git-3bd9729dc92ad3fc57aee17479231eb426fd076f.tar.gz
implement tp_clear
Diffstat (limited to 'Modules/_functoolsmodule.c')
-rw-r--r--Modules/_functoolsmodule.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index 311c6df82e..061204e502 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -355,6 +355,15 @@ keyobject_traverse(keyobject *ko, visitproc visit, void *arg)
return 0;
}
+static int
+keyobject_clear(keyobject *ko)
+{
+ Py_CLEAR(ko->cmp);
+ if (ko->object)
+ Py_CLEAR(ko->object);
+ return 0;
+}
+
static PyMemberDef keyobject_members[] = {
{"obj", T_OBJECT,
offsetof(keyobject, object), 0,
@@ -392,7 +401,7 @@ static PyTypeObject keyobject_type = {
Py_TPFLAGS_DEFAULT, /* tp_flags */
0, /* tp_doc */
(traverseproc)keyobject_traverse, /* tp_traverse */
- 0, /* tp_clear */
+ (inquiry)keyobject_clear, /* tp_clear */
keyobject_richcompare, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */