do not insert null into dict

This commit is contained in:
nulano 2023-03-21 21:44:52 +00:00
parent 76d36da12e
commit 1a11ba662c
No known key found for this signature in database
GPG Key ID: B650CDF63B705766
4 changed files with 48 additions and 45 deletions

View File

@ -3810,6 +3810,7 @@ static PyTypeObject PixelAccess_Type = {
static PyObject * static PyObject *
_get_stats(PyObject *self, PyObject *args) { _get_stats(PyObject *self, PyObject *args) {
PyObject *d; PyObject *d;
PyObject *v;
ImagingMemoryArena arena = &ImagingDefaultArena; ImagingMemoryArena arena = &ImagingDefaultArena;
if (!PyArg_ParseTuple(args, ":get_stats")) { if (!PyArg_ParseTuple(args, ":get_stats")) {
@ -3820,29 +3821,29 @@ _get_stats(PyObject *self, PyObject *args) {
if (!d) { if (!d) {
return NULL; return NULL;
} }
PyObject *new_count = PyLong_FromLong(arena->stats_new_count); v = PyLong_FromLong(arena->stats_new_count);
PyDict_SetItemString(d, "new_count", new_count); PyDict_SetItemString(d, "new_count", v ? v : Py_None);
Py_XDECREF(new_count); Py_XDECREF(v);
PyObject *allocated_blocks = PyLong_FromLong(arena->stats_allocated_blocks); v = PyLong_FromLong(arena->stats_allocated_blocks);
PyDict_SetItemString(d, "allocated_blocks", allocated_blocks); PyDict_SetItemString(d, "allocated_blocks", v ? v : Py_None);
Py_XDECREF(allocated_blocks); Py_XDECREF(v);
PyObject *reused_blocks = PyLong_FromLong(arena->stats_reused_blocks); v = PyLong_FromLong(arena->stats_reused_blocks);
PyDict_SetItemString(d, "reused_blocks", reused_blocks); PyDict_SetItemString(d, "reused_blocks", v ? v : Py_None);
Py_XDECREF(reused_blocks); Py_XDECREF(v);
PyObject *reallocated_blocks = PyLong_FromLong(arena->stats_reallocated_blocks); v = PyLong_FromLong(arena->stats_reallocated_blocks);
PyDict_SetItemString(d, "reallocated_blocks", reallocated_blocks); PyDict_SetItemString(d, "reallocated_blocks", v ? v : Py_None);
Py_XDECREF(reallocated_blocks); Py_XDECREF(v);
PyObject *freed_blocks = PyLong_FromLong(arena->stats_freed_blocks); v = PyLong_FromLong(arena->stats_freed_blocks);
PyDict_SetItemString(d, "freed_blocks", freed_blocks); PyDict_SetItemString(d, "freed_blocks", v ? v : Py_None);
Py_XDECREF(freed_blocks); Py_XDECREF(v);
PyObject *blocks_cached = PyLong_FromLong(arena->blocks_cached); v = PyLong_FromLong(arena->blocks_cached);
PyDict_SetItemString(d, "blocks_cached", blocks_cached); PyDict_SetItemString(d, "blocks_cached", v ? v : Py_None);
Py_XDECREF(blocks_cached); Py_XDECREF(v);
return d; return d;
} }
@ -4211,31 +4212,33 @@ setup_module(PyObject *m) {
#ifdef HAVE_LIBJPEG #ifdef HAVE_LIBJPEG
{ {
extern const char *ImagingJpegVersion(void); extern const char *ImagingJpegVersion(void);
PyObject *jpeglib_version = PyUnicode_FromString(ImagingJpegVersion()); PyObject *v = PyUnicode_FromString(ImagingJpegVersion());
PyDict_SetItemString(d, "jpeglib_version", jpeglib_version); PyDict_SetItemString(d, "jpeglib_version", v ? v : Py_None);
Py_XDECREF(jpeglib_version); Py_XDECREF(v);
} }
#endif #endif
#ifdef HAVE_OPENJPEG #ifdef HAVE_OPENJPEG
{ {
extern const char *ImagingJpeg2KVersion(void); extern const char *ImagingJpeg2KVersion(void);
PyObject *jp2klib_version = PyUnicode_FromString(ImagingJpeg2KVersion()); PyObject *v = PyUnicode_FromString(ImagingJpeg2KVersion());
PyDict_SetItemString(d, "jp2klib_version", jp2klib_version); PyDict_SetItemString(d, "jp2klib_version", v ? v : Py_None);
Py_XDECREF(jp2klib_version); Py_XDECREF(v);
} }
#endif #endif
PyObject *have_libjpegturbo; PyObject *have_libjpegturbo;
#ifdef LIBJPEG_TURBO_VERSION #ifdef LIBJPEG_TURBO_VERSION
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)
PyObject *libjpeg_turbo_version = PyUnicode_FromString(tostr(LIBJPEG_TURBO_VERSION)); PyObject *v = PyUnicode_FromString(tostr(LIBJPEG_TURBO_VERSION));
PyDict_SetItemString(d, "libjpeg_turbo_version", libjpeg_turbo_version); PyDict_SetItemString(d, "libjpeg_turbo_version", v ? v : Py_None);
Py_XDECREF(libjpeg_turbo_version); Py_XDECREF(v);
#undef tostr #undef tostr
#undef tostr1 #undef tostr1
}
#else #else
have_libjpegturbo = Py_False; have_libjpegturbo = Py_False;
#endif #endif
@ -4247,9 +4250,9 @@ setup_module(PyObject *m) {
have_libimagequant = Py_True; have_libimagequant = Py_True;
{ {
extern const char *ImagingImageQuantVersion(void); extern const char *ImagingImageQuantVersion(void);
PyObject *imagequant_version = PyUnicode_FromString(ImagingImageQuantVersion()); PyObject *v = PyUnicode_FromString(ImagingImageQuantVersion());
PyDict_SetItemString(d, "imagequant_version", imagequant_version); PyDict_SetItemString(d, "imagequant_version", v ? v : Py_None);
Py_XDECREF(imagequant_version); Py_XDECREF(v);
} }
#else #else
have_libimagequant = Py_False; have_libimagequant = Py_False;
@ -4266,18 +4269,18 @@ setup_module(PyObject *m) {
PyModule_AddIntConstant(m, "FIXED", Z_FIXED); PyModule_AddIntConstant(m, "FIXED", Z_FIXED);
{ {
extern const char *ImagingZipVersion(void); extern const char *ImagingZipVersion(void);
PyObject *zlibversion = PyUnicode_FromString(ImagingZipVersion()); PyObject *v = PyUnicode_FromString(ImagingZipVersion());
PyDict_SetItemString(d, "zlib_version", zlibversion); PyDict_SetItemString(d, "zlib_version", v ? v : Py_None);
Py_XDECREF(zlibversion); Py_XDECREF(v);
} }
#endif #endif
#ifdef HAVE_LIBTIFF #ifdef HAVE_LIBTIFF
{ {
extern const char *ImagingTiffVersion(void); extern const char *ImagingTiffVersion(void);
PyObject *libtiff_version = PyUnicode_FromString(ImagingTiffVersion()); PyObject *v = PyUnicode_FromString(ImagingTiffVersion());
PyDict_SetItemString(d, "libtiff_version", libtiff_version); PyDict_SetItemString(d, "libtiff_version", v ? v : Py_None);
Py_XDECREF(libtiff_version); Py_XDECREF(v);
// Test for libtiff 4.0 or later, excluding libtiff 3.9.6 and 3.9.7 // Test for libtiff 4.0 or later, excluding libtiff 3.9.6 and 3.9.7
PyObject *support_custom_tags; PyObject *support_custom_tags;
@ -4301,7 +4304,7 @@ setup_module(PyObject *m) {
PyModule_AddObject(m, "HAVE_XCB", have_xcb); PyModule_AddObject(m, "HAVE_XCB", have_xcb);
PyObject *pillow_version = PyUnicode_FromString(version); PyObject *pillow_version = PyUnicode_FromString(version);
PyDict_SetItemString(d, "PILLOW_VERSION", pillow_version); PyDict_SetItemString(d, "PILLOW_VERSION", pillow_version ? pillow_version : Py_None);
Py_XDECREF(pillow_version); Py_XDECREF(pillow_version);
return 0; return 0;

View File

@ -1533,7 +1533,7 @@ setup_module(PyObject *m) {
} else { } else {
v = PyUnicode_FromFormat("%d.%d", vn / 1000, (vn / 10) % 100); v = PyUnicode_FromFormat("%d.%d", vn / 1000, (vn / 10) % 100);
} }
PyDict_SetItemString(d, "littlecms_version", v); PyDict_SetItemString(d, "littlecms_version", v ? v : Py_None);
Py_XDECREF(v); Py_XDECREF(v);
return 0; return 0;

View File

@ -1130,15 +1130,15 @@ font_getvaraxes(FontObject *self) {
list_axis = PyDict_New(); list_axis = PyDict_New();
PyObject *minimum = PyLong_FromLong(axis.minimum / 65536); PyObject *minimum = PyLong_FromLong(axis.minimum / 65536);
PyDict_SetItemString(list_axis, "minimum", minimum); PyDict_SetItemString(list_axis, "minimum", minimum ? minimum : Py_None);
Py_XDECREF(minimum); Py_XDECREF(minimum);
PyObject *def = PyLong_FromLong(axis.def / 65536); PyObject *def = PyLong_FromLong(axis.def / 65536);
PyDict_SetItemString(list_axis, "default", def); PyDict_SetItemString(list_axis, "default", def ? def : Py_None);
Py_XDECREF(def); Py_XDECREF(def);
PyObject *maximum = PyLong_FromLong(axis.maximum / 65536); PyObject *maximum = PyLong_FromLong(axis.maximum / 65536);
PyDict_SetItemString(list_axis, "maximum", maximum); PyDict_SetItemString(list_axis, "maximum", maximum ? maximum : Py_None);
Py_XDECREF(maximum); Py_XDECREF(maximum);
for (j = 0; j < name_count; j++) { for (j = 0; j < name_count; j++) {
@ -1149,7 +1149,7 @@ font_getvaraxes(FontObject *self) {
if (name.name_id == axis.strid) { if (name.name_id == axis.strid) {
axis_name = Py_BuildValue("y#", name.string, name.string_len); axis_name = Py_BuildValue("y#", name.string, name.string_len);
PyDict_SetItemString(list_axis, "name", axis_name); PyDict_SetItemString(list_axis, "name", axis_name ? axis_name : Py_None);
Py_XDECREF(axis_name); Py_XDECREF(axis_name);
break; break;
} }

View File

@ -962,9 +962,9 @@ setup_module(PyObject *m) {
addAnimFlagToModule(m); addAnimFlagToModule(m);
addTransparencyFlagToModule(m); addTransparencyFlagToModule(m);
PyObject *webpdecoder_version = PyUnicode_FromString(WebPDecoderVersion_str()); PyObject *v = PyUnicode_FromString(WebPDecoderVersion_str());
PyDict_SetItemString(d, "webpdecoder_version", webpdecoder_version); PyDict_SetItemString(d, "webpdecoder_version", v ? v : Py_None);
Py_XDECREF(webpdecoder_version); Py_XDECREF(v);
#ifdef HAVE_WEBPANIM #ifdef HAVE_WEBPANIM
/* Ready object types */ /* Ready object types */