summaryrefslogtreecommitdiff
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-13 07:38:10 -0500
commite153b7a5657273c3b4e6bbc795a4dd37bb2d5218 (patch)
treee113c6fd10c814d7289f23a6d95da8394ab21372
parent13f4adb145c23912edc3bf69bb612c097c8bb828 (diff)
downloadzope-proxy-e153b7a5657273c3b4e6bbc795a4dd37bb2d5218.tar.gz
Untrack self when deallocating.
Fixes #20
-rw-r--r--CHANGES.rst3
-rw-r--r--src/zope/proxy/_zope_proxy_proxy.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 48f0a61..4c0b9a2 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,6 +4,9 @@ Changes
4.3.0 (unreleased)
------------------
+- Fix a potential rare crash when deallocating proxies. See `issue 20
+ <https://github.com/zopefoundation/zope.proxy/issues/20>`_.
+
- Drop support for Python 3.3.
- Drop support for "python setup.py test".
diff --git a/src/zope/proxy/_zope_proxy_proxy.c b/src/zope/proxy/_zope_proxy_proxy.c
index d1c4478..e201337 100644
--- a/src/zope/proxy/_zope_proxy_proxy.c
+++ b/src/zope/proxy/_zope_proxy_proxy.c
@@ -182,6 +182,7 @@ wrap_iternext(PyObject *self)
static void
wrap_dealloc(PyObject *self)
{
+ PyObject_GC_UnTrack(self);
(void) wrap_clear(self);
self->ob_type->tp_free(self);
}