diff options
-rw-r--r-- | src/easy.c | 4 | ||||
-rw-r--r-- | src/multi.c | 4 | ||||
-rw-r--r-- | src/pycurl.h | 8 | ||||
-rw-r--r-- | src/share.c | 4 |
4 files changed, 14 insertions, 6 deletions
@@ -606,13 +606,13 @@ PYCURL_INTERNAL void do_curl_dealloc(CurlObject *self) { PyObject_GC_UnTrack(self); - Py_TRASHCAN_SAFE_BEGIN(self); + CPy_TRASHCAN_BEGIN(self, do_curl_dealloc); Py_CLEAR(self->dict); util_curl_close(self); Curl_Type.tp_free(self); - Py_TRASHCAN_SAFE_END(self); + CPy_TRASHCAN_END(self); } diff --git a/src/multi.c b/src/multi.c index ebe129f..3dbc3fc 100644 --- a/src/multi.c +++ b/src/multi.c @@ -117,7 +117,7 @@ PYCURL_INTERNAL void do_multi_dealloc(CurlMultiObject *self) { PyObject_GC_UnTrack(self); - Py_TRASHCAN_SAFE_BEGIN(self); + CPy_TRASHCAN_BEGIN(self, do_multi_dealloc); util_multi_xdecref(self); util_multi_close(self); @@ -127,7 +127,7 @@ do_multi_dealloc(CurlMultiObject *self) } CurlMulti_Type.tp_free(self); - Py_TRASHCAN_SAFE_END(self); + CPy_TRASHCAN_END(self); } diff --git a/src/pycurl.h b/src/pycurl.h index 6f70a9a..9a97f0b 100644 --- a/src/pycurl.h +++ b/src/pycurl.h @@ -693,5 +693,13 @@ extern PyMethodDef curlmultiobject_methods[]; # define PYCURL_TYPE_FLAGS Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_WEAKREFS | Py_TPFLAGS_BASETYPE #endif +#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 8 +# define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_BEGIN(op, dealloc) +# define CPy_TRASHCAN_END(op) Py_TRASHCAN_END +#else +# define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_SAFE_BEGIN(op) +# define CPy_TRASHCAN_END(op) Py_TRASHCAN_SAFE_END(op) +#endif + /* vi:ts=4:et:nowrap */ diff --git a/src/share.c b/src/share.c index 27e49ac..94b25b4 100644 --- a/src/share.c +++ b/src/share.c @@ -119,7 +119,7 @@ PYCURL_INTERNAL void do_share_dealloc(CurlShareObject *self) { PyObject_GC_UnTrack(self); - Py_TRASHCAN_SAFE_BEGIN(self); + CPy_TRASHCAN_BEGIN(self, do_share_dealloc); Py_CLEAR(self->dict); util_share_close(self); @@ -133,7 +133,7 @@ do_share_dealloc(CurlShareObject *self) } CurlShare_Type.tp_free(self); - Py_TRASHCAN_SAFE_END(self); + CPy_TRASHCAN_END(self); } |