@@ -3810,6 +3810,7 @@ static PyTypeObject PixelAccess_Type = {
38103810static PyObject *
38113811_get_stats (PyObject * self , PyObject * args ) {
38123812 PyObject * d ;
3813+ PyObject * v ;
38133814 ImagingMemoryArena arena = & ImagingDefaultArena ;
38143815
38153816 if (!PyArg_ParseTuple (args , ":get_stats" )) {
@@ -3820,29 +3821,29 @@ _get_stats(PyObject *self, PyObject *args) {
38203821 if (!d ) {
38213822 return NULL ;
38223823 }
3823- PyObject * new_count = PyLong_FromLong (arena -> stats_new_count );
3824- PyDict_SetItemString (d , "new_count" , new_count );
3825- Py_XDECREF (new_count );
3824+ v = PyLong_FromLong (arena -> stats_new_count );
3825+ PyDict_SetItemString (d , "new_count" , v ? v : Py_None );
3826+ Py_XDECREF (v );
38263827
3827- PyObject * allocated_blocks = PyLong_FromLong (arena -> stats_allocated_blocks );
3828- PyDict_SetItemString (d , "allocated_blocks" , allocated_blocks );
3829- Py_XDECREF (allocated_blocks );
3828+ v = PyLong_FromLong (arena -> stats_allocated_blocks );
3829+ PyDict_SetItemString (d , "allocated_blocks" , v ? v : Py_None );
3830+ Py_XDECREF (v );
38303831
3831- PyObject * reused_blocks = PyLong_FromLong (arena -> stats_reused_blocks );
3832- PyDict_SetItemString (d , "reused_blocks" , reused_blocks );
3833- Py_XDECREF (reused_blocks );
3832+ v = PyLong_FromLong (arena -> stats_reused_blocks );
3833+ PyDict_SetItemString (d , "reused_blocks" , v ? v : Py_None );
3834+ Py_XDECREF (v );
38343835
3835- PyObject * reallocated_blocks = PyLong_FromLong (arena -> stats_reallocated_blocks );
3836- PyDict_SetItemString (d , "reallocated_blocks" , reallocated_blocks );
3837- Py_XDECREF (reallocated_blocks );
3836+ v = PyLong_FromLong (arena -> stats_reallocated_blocks );
3837+ PyDict_SetItemString (d , "reallocated_blocks" , v ? v : Py_None );
3838+ Py_XDECREF (v );
38383839
3839- PyObject * freed_blocks = PyLong_FromLong (arena -> stats_freed_blocks );
3840- PyDict_SetItemString (d , "freed_blocks" , freed_blocks );
3841- Py_XDECREF (freed_blocks );
3840+ v = PyLong_FromLong (arena -> stats_freed_blocks );
3841+ PyDict_SetItemString (d , "freed_blocks" , v ? v : Py_None );
3842+ Py_XDECREF (v );
38423843
3843- PyObject * blocks_cached = PyLong_FromLong (arena -> blocks_cached );
3844- PyDict_SetItemString (d , "blocks_cached" , blocks_cached );
3845- Py_XDECREF (blocks_cached );
3844+ v = PyLong_FromLong (arena -> blocks_cached );
3845+ PyDict_SetItemString (d , "blocks_cached" , v ? v : Py_None );
3846+ Py_XDECREF (v );
38463847 return d ;
38473848}
38483849
@@ -4211,31 +4212,33 @@ setup_module(PyObject *m) {
42114212#ifdef HAVE_LIBJPEG
42124213 {
42134214 extern const char * ImagingJpegVersion (void );
4214- PyObject * jpeglib_version = PyUnicode_FromString (ImagingJpegVersion ());
4215- PyDict_SetItemString (d , "jpeglib_version" , jpeglib_version );
4216- Py_XDECREF (jpeglib_version );
4215+ PyObject * v = PyUnicode_FromString (ImagingJpegVersion ());
4216+ PyDict_SetItemString (d , "jpeglib_version" , v ? v : Py_None );
4217+ Py_XDECREF (v );
42174218 }
42184219#endif
42194220
42204221#ifdef HAVE_OPENJPEG
42214222 {
42224223 extern const char * ImagingJpeg2KVersion (void );
4223- PyObject * jp2klib_version = PyUnicode_FromString (ImagingJpeg2KVersion ());
4224- PyDict_SetItemString (d , "jp2klib_version" , jp2klib_version );
4225- Py_XDECREF (jp2klib_version );
4224+ PyObject * v = PyUnicode_FromString (ImagingJpeg2KVersion ());
4225+ PyDict_SetItemString (d , "jp2klib_version" , v ? v : Py_None );
4226+ Py_XDECREF (v );
42264227 }
42274228#endif
42284229
42294230 PyObject * have_libjpegturbo ;
42304231#ifdef LIBJPEG_TURBO_VERSION
42314232 have_libjpegturbo = Py_True ;
4233+ {
42324234#define tostr1 (a ) #a
42334235#define tostr (a ) tostr1(a)
4234- PyObject * libjpeg_turbo_version = PyUnicode_FromString (tostr (LIBJPEG_TURBO_VERSION ));
4235- PyDict_SetItemString (d , "libjpeg_turbo_version" , libjpeg_turbo_version );
4236- Py_XDECREF (libjpeg_turbo_version );
4236+ PyObject * v = PyUnicode_FromString (tostr (LIBJPEG_TURBO_VERSION ));
4237+ PyDict_SetItemString (d , "libjpeg_turbo_version" , v ? v : Py_None );
4238+ Py_XDECREF (v );
42374239#undef tostr
42384240#undef tostr1
4241+ }
42394242#else
42404243 have_libjpegturbo = Py_False ;
42414244#endif
@@ -4247,9 +4250,9 @@ setup_module(PyObject *m) {
42474250 have_libimagequant = Py_True ;
42484251 {
42494252 extern const char * ImagingImageQuantVersion (void );
4250- PyObject * imagequant_version = PyUnicode_FromString (ImagingImageQuantVersion ());
4251- PyDict_SetItemString (d , "imagequant_version" , imagequant_version );
4252- Py_XDECREF (imagequant_version );
4253+ PyObject * v = PyUnicode_FromString (ImagingImageQuantVersion ());
4254+ PyDict_SetItemString (d , "imagequant_version" , v ? v : Py_None );
4255+ Py_XDECREF (v );
42534256 }
42544257#else
42554258 have_libimagequant = Py_False ;
@@ -4266,18 +4269,18 @@ setup_module(PyObject *m) {
42664269 PyModule_AddIntConstant (m , "FIXED" , Z_FIXED );
42674270 {
42684271 extern const char * ImagingZipVersion (void );
4269- PyObject * zlibversion = PyUnicode_FromString (ImagingZipVersion ());
4270- PyDict_SetItemString (d , "zlib_version" , zlibversion );
4271- Py_XDECREF (zlibversion );
4272+ PyObject * v = PyUnicode_FromString (ImagingZipVersion ());
4273+ PyDict_SetItemString (d , "zlib_version" , v ? v : Py_None );
4274+ Py_XDECREF (v );
42724275 }
42734276#endif
42744277
42754278#ifdef HAVE_LIBTIFF
42764279 {
42774280 extern const char * ImagingTiffVersion (void );
4278- PyObject * libtiff_version = PyUnicode_FromString (ImagingTiffVersion ());
4279- PyDict_SetItemString (d , "libtiff_version" , libtiff_version );
4280- Py_XDECREF (libtiff_version );
4281+ PyObject * v = PyUnicode_FromString (ImagingTiffVersion ());
4282+ PyDict_SetItemString (d , "libtiff_version" , v ? v : Py_None );
4283+ Py_XDECREF (v );
42814284
42824285 // Test for libtiff 4.0 or later, excluding libtiff 3.9.6 and 3.9.7
42834286 PyObject * support_custom_tags ;
@@ -4301,7 +4304,7 @@ setup_module(PyObject *m) {
43014304 PyModule_AddObject (m , "HAVE_XCB" , have_xcb );
43024305
43034306 PyObject * pillow_version = PyUnicode_FromString (version );
4304- PyDict_SetItemString (d , "PILLOW_VERSION" , pillow_version );
4307+ PyDict_SetItemString (d , "PILLOW_VERSION" , pillow_version ? pillow_version : Py_None );
43054308 Py_XDECREF (pillow_version );
43064309
43074310 return 0 ;
0 commit comments