PyModule_AddObject fix for Python 3.10

This commit is contained in:
Andrew Murray 2021-01-09 11:33:26 +11:00
parent a0a5b7a01d
commit 2ba5eb1cd9
2 changed files with 32 additions and 16 deletions

View File

@ -4172,26 +4172,33 @@ setup_module(PyObject* m) {
} }
#endif #endif
PyObject *have_libjpegturbo;
#ifdef LIBJPEG_TURBO_VERSION #ifdef LIBJPEG_TURBO_VERSION
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_True); have_libjpegturbo = Py_True;
#define tostr1(a) #a #define tostr1(a) #a
#define tostr(a) tostr1(a) #define tostr(a) tostr1(a)
PyDict_SetItemString(d, "libjpeg_turbo_version", PyUnicode_FromString(tostr(LIBJPEG_TURBO_VERSION))); PyDict_SetItemString(
#undef tostr d, "libjpeg_turbo_version", PyUnicode_FromString(tostr(LIBJPEG_TURBO_VERSION)));
#undef tostr1 #undef tostr
#undef tostr1
#else #else
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_False); have_libjpegturbo = Py_False;
#endif #endif
Py_INCREF(have_libjpegturbo);
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", have_libjpegturbo);
PyObject *have_libimagequant;
#ifdef HAVE_LIBIMAGEQUANT #ifdef HAVE_LIBIMAGEQUANT
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_True); have_libimagequant = Py_True;
{ {
extern const char* ImagingImageQuantVersion(void); extern const char* ImagingImageQuantVersion(void);
PyDict_SetItemString(d, "imagequant_version", PyUnicode_FromString(ImagingImageQuantVersion())); PyDict_SetItemString(d, "imagequant_version", PyUnicode_FromString(ImagingImageQuantVersion()));
} }
#else #else
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_False); have_libimagequant = Py_False;
#endif #endif
Py_INCREF(have_libimagequant);
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", have_libimagequant);
#ifdef HAVE_LIBZ #ifdef HAVE_LIBZ
/* zip encoding strategies */ /* zip encoding strategies */
@ -4222,11 +4229,14 @@ setup_module(PyObject* m) {
} }
#endif #endif
PyObject *have_xcb;
#ifdef HAVE_XCB #ifdef HAVE_XCB
PyModule_AddObject(m, "HAVE_XCB", Py_True); have_xcb = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_XCB", Py_False); have_xcb = Py_False;
#endif #endif
Py_INCREF(have_xcb);
PyModule_AddObject(m, "HAVE_XCB", have_xcb);
PyDict_SetItemString(d, "PILLOW_VERSION", PyUnicode_FromString(version)); PyDict_SetItemString(d, "PILLOW_VERSION", PyUnicode_FromString(version));

View File

@ -861,19 +861,25 @@ static PyMethodDef webpMethods[] =
}; };
void addMuxFlagToModule(PyObject* m) { void addMuxFlagToModule(PyObject* m) {
PyObject *have_webpmux;
#ifdef HAVE_WEBPMUX #ifdef HAVE_WEBPMUX
PyModule_AddObject(m, "HAVE_WEBPMUX", Py_True); have_webpmux = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_WEBPMUX", Py_False); have_webpmux = Py_False;
#endif #endif
Py_INCREF(have_webpmux);
PyModule_AddObject(m, "HAVE_WEBPMUX", have_webpmux);
} }
void addAnimFlagToModule(PyObject* m) { void addAnimFlagToModule(PyObject *m) {
PyObject *have_webpanim;
#ifdef HAVE_WEBPANIM #ifdef HAVE_WEBPANIM
PyModule_AddObject(m, "HAVE_WEBPANIM", Py_True); have_webpanim = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_WEBPANIM", Py_False); have_webpanim = Py_False;
#endif #endif
Py_INCREF(have_webpanim);
PyModule_AddObject(m, "HAVE_WEBPANIM", have_webpanim);
} }
void addTransparencyFlagToModule(PyObject* m) { void addTransparencyFlagToModule(PyObject* m) {