From 9b7dccfe32dfa620afa54050e83d673903ce81e4 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:47:58 +1100 Subject: [PATCH] Use PyModule_AddObjectRef (#9503) --- src/_imaging.c | 25 +++++++++++++++---------- src/_imagingcms.c | 9 ++++----- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/_imaging.c b/src/_imaging.c index b8b8df5c2..697fe0ce5 100644 --- a/src/_imaging.c +++ b/src/_imaging.c @@ -4324,8 +4324,9 @@ setup_module(PyObject *m) { #else have_libjpegturbo = Py_False; #endif - Py_INCREF(have_libjpegturbo); - PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", have_libjpegturbo); + if (PyModule_AddObjectRef(m, "HAVE_LIBJPEGTURBO", have_libjpegturbo) < 0) { + return -1; + } PyObject *have_mozjpeg; #ifdef JPEG_C_PARAM_SUPPORTED @@ -4333,8 +4334,9 @@ setup_module(PyObject *m) { #else have_mozjpeg = Py_False; #endif - Py_INCREF(have_mozjpeg); - PyModule_AddObject(m, "HAVE_MOZJPEG", have_mozjpeg); + if (PyModule_AddObjectRef(m, "HAVE_MOZJPEG", have_mozjpeg) < 0) { + return -1; + } PyObject *have_libimagequant; #ifdef HAVE_LIBIMAGEQUANT @@ -4348,8 +4350,9 @@ setup_module(PyObject *m) { #else have_libimagequant = Py_False; #endif - Py_INCREF(have_libimagequant); - PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", have_libimagequant); + if (PyModule_AddObjectRef(m, "HAVE_LIBIMAGEQUANT", have_libimagequant) < 0) { + return -1; + } #ifdef HAVE_LIBZ /* zip encoding strategies */ @@ -4377,8 +4380,9 @@ setup_module(PyObject *m) { #else have_zlibng = Py_False; #endif - Py_INCREF(have_zlibng); - PyModule_AddObject(m, "HAVE_ZLIBNG", have_zlibng); + if (PyModule_AddObjectRef(m, "HAVE_ZLIBNG", have_zlibng) < 0) { + return -1; + } #ifdef HAVE_LIBTIFF { @@ -4395,8 +4399,9 @@ setup_module(PyObject *m) { #else have_xcb = Py_False; #endif - Py_INCREF(have_xcb); - PyModule_AddObject(m, "HAVE_XCB", have_xcb); + if (PyModule_AddObjectRef(m, "HAVE_XCB", have_xcb) < 0) { + return -1; + } PyObject *pillow_version = PyUnicode_FromString(version); PyDict_SetItemString( diff --git a/src/_imagingcms.c b/src/_imagingcms.c index 7db1baef0..7b4fb00a4 100644 --- a/src/_imagingcms.c +++ b/src/_imagingcms.c @@ -1451,11 +1451,10 @@ setup_module(PyObject *m) { return -1; } - Py_INCREF(&CmsProfile_Type); - PyModule_AddObject(m, "CmsProfile", (PyObject *)&CmsProfile_Type); - - Py_INCREF(&CmsTransform_Type); - PyModule_AddObject(m, "CmsTransform", (PyObject *)&CmsTransform_Type); + if (PyModule_AddObjectRef(m, "CmsProfile", (PyObject *)&CmsProfile_Type) < 0 || + PyModule_AddObjectRef(m, "CmsTransform", (PyObject *)&CmsTransform_Type) < 0) { + return -1; + } d = PyModule_GetDict(m);