summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-05-26 19:00:52 +0200
committerMichał Górny <mgorny@gentoo.org>2020-05-26 20:09:44 +0200
commitc124ccfb11cdde96a4936b887f3e5e3278fdb982 (patch)
treeb4f1cd093b3437ed5efcd2a531859a8e363e6afb /dev-python/greenlet/files
parentdev-python/dnspython: Port to py39 (diff)
downloadgentoo-c124ccfb11cdde96a4936b887f3e5e3278fdb982.tar.gz
gentoo-c124ccfb11cdde96a4936b887f3e5e3278fdb982.tar.bz2
gentoo-c124ccfb11cdde96a4936b887f3e5e3278fdb982.zip
dev-python/greenlet: Port to py39
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/greenlet/files')
-rw-r--r--dev-python/greenlet/files/greenlet-0.4.15-py39.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/dev-python/greenlet/files/greenlet-0.4.15-py39.patch b/dev-python/greenlet/files/greenlet-0.4.15-py39.patch
new file mode 100644
index 000000000000..15cf75d32e55
--- /dev/null
+++ b/dev-python/greenlet/files/greenlet-0.4.15-py39.patch
@@ -0,0 +1,48 @@
+From d05b62bb75e6a3e217435a1fe0f15a53e692898c Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Wed, 18 Mar 2020 15:09:33 +0100
+Subject: [PATCH] Port to Python 3.9
+
+On Python 3.9, define _Py_DEC_REFTOTAL which has been removed by:
+https://github.com/python/cpython/commit/49932fec62c616ec88da52642339d83ae719e924
+
+Replace also PyEval_CallObjectWithKeywords() with PyObject_Call(),
+since PyEval_CallObjectWithKeywords() has been deprecated in
+Python 3.9 and PyObject_Call() has the same behavior. The only
+difference is that PyEval_CallObjectWithKeywords() can be called with
+args=NULL, but g_initialstub() ensures that args is not NULL.
+---
+ greenlet.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/greenlet.c b/greenlet.c
+index ec738b9..d37fc97 100644
+--- a/greenlet.c
++++ b/greenlet.c
+@@ -109,6 +109,16 @@ extern PyTypeObject PyGreenlet_Type;
+ #define GREENLET_USE_TRACING 1
+ #endif
+
++#ifndef _Py_DEC_REFTOTAL
++ /* _Py_DEC_REFTOTAL macro has been removed from Python 3.9 by:
++ https://github.com/python/cpython/commit/49932fec62c616ec88da52642339d83ae719e924 */
++# ifdef Py_REF_DEBUG
++# define _Py_DEC_REFTOTAL _Py_RefTotal--
++# else
++# define _Py_DEC_REFTOTAL
++# endif
++#endif
++
+ /* Weak reference to the switching-to greenlet during the slp switch */
+ static PyGreenlet* volatile ts_target = NULL;
+ /* Strong reference to the switching from greenlet after the switch */
+@@ -820,8 +830,7 @@ static int GREENLET_NOINLINE(g_initialstub)(void* mark)
+ result = NULL;
+ } else {
+ /* call g.run(*args, **kwargs) */
+- result = PyEval_CallObjectWithKeywords(
+- run, args, kwargs);
++ result = PyObject_Call(run, args, kwargs);
+ Py_DECREF(args);
+ Py_XDECREF(kwargs);
+ }