From 75233bb65a8db178931352f558b610fe9d6d1369 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Fri, 2 May 2025 18:48:41 -0400 Subject: [PATCH 1/6] PYTHON-5033 Use PyModule_Add on >= 3.13 --- bson/_cbsonmodule.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index 672f5eeda5..cff70f6e00 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3227,11 +3227,19 @@ _cbson_exec(PyObject *m) INITERROR; } +#if PY_VERSION_HEX >= 0x030D0000 + if (PyModule_Add(m, "_C_API", c_api_object) < 0) { + Py_DECREF(c_api_object); + Py_DECREF(m); + INITERROR; + } +# else if (PyModule_AddObject(m, "_C_API", c_api_object) < 0) { Py_DECREF(c_api_object); Py_DECREF(m); INITERROR; } +#endif return 0; } From 9c768f5f25c4dd365cf374cee670ebbb50a87bb5 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Thu, 8 May 2025 15:41:08 -0400 Subject: [PATCH 2/6] Remove DECREF --- bson/_cbsonmodule.c | 1 - 1 file changed, 1 deletion(-) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index cff70f6e00..f1905383a3 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3222,7 +3222,6 @@ _cbson_exec(PyObject *m) /* Import several python objects */ if (_load_python_objects(m)) { - Py_DECREF(c_api_object); Py_DECREF(m); INITERROR; } From 2360005bab9d64d7f03dd56245964490a815e2c8 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Thu, 8 May 2025 15:56:14 -0400 Subject: [PATCH 3/6] Revert "Remove DECREF" This reverts commit 9c768f5f25c4dd365cf374cee670ebbb50a87bb5. --- bson/_cbsonmodule.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index f1905383a3..cff70f6e00 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3222,6 +3222,7 @@ _cbson_exec(PyObject *m) /* Import several python objects */ if (_load_python_objects(m)) { + Py_DECREF(c_api_object); Py_DECREF(m); INITERROR; } From 1997546984ba67cf6bc4b7aebedfc426eb7f54f2 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Thu, 8 May 2025 15:58:59 -0400 Subject: [PATCH 4/6] Remove DECREF --- bson/_cbsonmodule.c | 1 - 1 file changed, 1 deletion(-) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index cff70f6e00..1c924cc4c3 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3230,7 +3230,6 @@ _cbson_exec(PyObject *m) #if PY_VERSION_HEX >= 0x030D0000 if (PyModule_Add(m, "_C_API", c_api_object) < 0) { Py_DECREF(c_api_object); - Py_DECREF(m); INITERROR; } # else From 2a94c085bcbd6aa6d9a1a282921630edbcf4c109 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Thu, 8 May 2025 16:59:18 -0400 Subject: [PATCH 5/6] Revert "Remove DECREF" This reverts commit 1997546984ba67cf6bc4b7aebedfc426eb7f54f2. --- bson/_cbsonmodule.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index 1c924cc4c3..cff70f6e00 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3230,6 +3230,7 @@ _cbson_exec(PyObject *m) #if PY_VERSION_HEX >= 0x030D0000 if (PyModule_Add(m, "_C_API", c_api_object) < 0) { Py_DECREF(c_api_object); + Py_DECREF(m); INITERROR; } # else From 5948dfa35d0e00a95d855ceab6203a4d3cc751e4 Mon Sep 17 00:00:00 2001 From: "Jeffrey A. Clark" Date: Thu, 8 May 2025 17:01:14 -0400 Subject: [PATCH 6/6] Remove DECREF --- bson/_cbsonmodule.c | 1 - 1 file changed, 1 deletion(-) diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c index cff70f6e00..be91e41734 100644 --- a/bson/_cbsonmodule.c +++ b/bson/_cbsonmodule.c @@ -3229,7 +3229,6 @@ _cbson_exec(PyObject *m) #if PY_VERSION_HEX >= 0x030D0000 if (PyModule_Add(m, "_C_API", c_api_object) < 0) { - Py_DECREF(c_api_object); Py_DECREF(m); INITERROR; }