From 170f8550b89c6c9e61b40e782cd75148825c2e89 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 16 Nov 2020 13:45:13 +0100 Subject: [PATCH] Use PyBytes_AsStringAndSize() instead of PyObject_AsReadBuffer() for python3 PyObject_AsReadBuffer was deprecated since python-3.0 and has now been removed in python-3.10. Fixes issue #410 --- bindings/solv.i | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bindings/solv.i b/bindings/solv.i index 48d3f1fb..0a8389a2 100644 --- a/bindings/solv.i +++ b/bindings/solv.i @@ -44,7 +44,11 @@ typedef struct { #if defined(SWIGPYTHON) const void *pybuf = 0; Py_ssize_t pysize = 0; +#if PY_VERSION_HEX >= 0x03000000 + res = PyBytes_AsStringAndSize($input, &pybuf, &pysize); +#else res = PyObject_AsReadBuffer($input, &pybuf, &pysize); +#endif if (res < 0) { %argument_fail(res, "BinaryBlob", $symname, $argnum); } else { From e258226c2430db4f37a34c71e72b2d909fa407fe Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 16 Nov 2020 15:11:14 +0100 Subject: [PATCH] Properly escape preprocessor directives Otherwise swig will process them instead of the compiler Should have been in commit 170f8550b89c6c9e61b40e782cd75148825c2e89 --- bindings/solv.i | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bindings/solv.i b/bindings/solv.i index 0a8389a2..1882b135 100644 --- a/bindings/solv.i +++ b/bindings/solv.i @@ -44,11 +44,11 @@ typedef struct { #if defined(SWIGPYTHON) const void *pybuf = 0; Py_ssize_t pysize = 0; -#if PY_VERSION_HEX >= 0x03000000 - res = PyBytes_AsStringAndSize($input, &pybuf, &pysize); -#else +%#if PY_VERSION_HEX >= 0x03000000 + res = PyBytes_AsStringAndSize($input, (char **)&pybuf, &pysize); +%#else res = PyObject_AsReadBuffer($input, &pybuf, &pysize); -#endif +%#endif if (res < 0) { %argument_fail(res, "BinaryBlob", $symname, $argnum); } else {