diff --git a/CHANGES.current b/CHANGES.current index e2f9d9ff0..35a84b96f 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,17 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.1.0 (in progress) =========================== +2022-05-27: xypron + [Python] #2277 Define PY_SSIZE_T_CLEAN macro before #include "Python.h" as + recommended in Python 3.7 and later. + + To avoid this macro definition, add the following to your interface file so + that SWIG_NO_PY_SSIZE_T_CLEAN is defined at the beginning of the C++ wrappers: + + %begin %{ + #define SWIG_NO_PY_SSIZE_T_CLEAN + %} + 2022-05-26: rokups [C#] #1323 Modify SwigDerivedClassHasMethod for a more efficient director implementation when calling virtual methods that are not overidden. diff --git a/Lib/python/embed.i b/Lib/python/embed.i index efd048789..34cb9b92a 100644 --- a/Lib/python/embed.i +++ b/Lib/python/embed.i @@ -29,7 +29,9 @@ As far as I know, this module is C++ safe. #endif %wrapper %{ - +#ifndef SWIG_NO_PY_SSIZE_T_CLEAN +#define PY_SSIZE_T_CLEAN +#endif #include #ifdef __cplusplus diff --git a/Lib/python/pyruntime.swg b/Lib/python/pyruntime.swg index 843fa6ce1..b1033dfbc 100644 --- a/Lib/python/pyruntime.swg +++ b/Lib/python/pyruntime.swg @@ -11,6 +11,9 @@ # include #endif +#ifndef SWIG_NO_PY_SSIZE_T_CLEAN +#define PY_SSIZE_T_CLEAN +#endif #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG) /* Use debug wrappers with the Python release dll */ # undef _DEBUG