summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKIMURA Chikahiro <chi-kimura@xr.jp.nec.com>2017-08-07 17:48:08 +0900
committerJason Madden <jamadden@gmail.com>2017-09-11 07:55:21 -0500
commita11c5e20c2e25a5f7f32f1c11e4d4f47322ff3bb (patch)
treef4fdba9deb5a009c9655718ce7ea847b95e54883 /src
parenta19b95f381047bf1b957c2b83cb9cf0f42897cbb (diff)
downloadzope-security-a11c5e20c2e25a5f7f32f1c11e4d4f47322ff3bb.tar.gz
call PyObject_GC_UnTrack() in tp_dealloc()
see the following sites for details: * https://bugs.python.org/issue31095 * https://github.com/python/cpython/pull/2974 Fixes #35.
Diffstat (limited to 'src')
-rw-r--r--src/zope/security/_proxy.c1
-rw-r--r--src/zope/security/_zope_security_checker.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/zope/security/_proxy.c b/src/zope/security/_proxy.c
index 5108065..04321d7 100644
--- a/src/zope/security/_proxy.c
+++ b/src/zope/security/_proxy.c
@@ -343,6 +343,7 @@ proxy_clear(SecurityProxy *self)
static void
proxy_dealloc(SecurityProxy *self)
{
+ PyObject_GC_UnTrack((PyObject*)self);
proxy_clear(self);
SecurityProxyType.tp_base->tp_dealloc((PyObject*)self);
}
diff --git a/src/zope/security/_zope_security_checker.c b/src/zope/security/_zope_security_checker.c
index e5a2528..82edbbf 100644
--- a/src/zope/security/_zope_security_checker.c
+++ b/src/zope/security/_zope_security_checker.c
@@ -368,6 +368,7 @@ Checker_clear(Checker *self)
static void
Checker_dealloc(Checker *self)
{
+ PyObject_GC_UnTrack((PyObject*)self);
Checker_clear(self);
Py_TYPE(self)->tp_free((PyObject*)self);
}