aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/pyside6/PySide6/glue/qtcore.cpp2
-rw-r--r--sources/pyside6/libpysideremoteobjects/pysiderephandler.cpp2
-rw-r--r--sources/shiboken6/doc/typesystem_codeinjection.rst2
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp4
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.cpp14
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.h2
-rw-r--r--sources/shiboken6/libshiboken/sbkmodule.cpp2
-rw-r--r--sources/shiboken6/shibokenmodule/shibokenmodule.cpp2
8 files changed, 23 insertions, 7 deletions
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp
index f62a29226..2f21ffca6 100644
--- a/sources/pyside6/PySide6/glue/qtcore.cpp
+++ b/sources/pyside6/PySide6/glue/qtcore.cpp
@@ -280,7 +280,7 @@ QList<QByteArray> version = QByteArray(qVersion()).split('.');
PyObject *pyQtVersion = PyTuple_New(3);
for (int i = 0; i < 3; ++i)
PyTuple_SetItem(pyQtVersion, i, PyLong_FromLong(version[i].toInt()));
-PyModule_AddObject(module, "__version_info__", pyQtVersion);
+PepModule_Add(module, "__version_info__", pyQtVersion);
PyModule_AddStringConstant(module, "__version__", qVersion());
// @snippet qt-version
diff --git a/sources/pyside6/libpysideremoteobjects/pysiderephandler.cpp b/sources/pyside6/libpysideremoteobjects/pysiderephandler.cpp
index 7ceb90586..5b4859cd0 100644
--- a/sources/pyside6/libpysideremoteobjects/pysiderephandler.cpp
+++ b/sources/pyside6/libpysideremoteobjects/pysiderephandler.cpp
@@ -454,7 +454,7 @@ void init(PyObject *module)
"Returns the current count of PyCapsule objects" // docstring
};
- PyModule_AddObject(module, "getCapsuleCount", PyCFunction_New(&get_capsule_count_def, nullptr));
+ PepModule_Add(module, "getCapsuleCount", PyCFunction_New(&get_capsule_count_def, nullptr));
}
} // namespace PySide::RemoteObjects
diff --git a/sources/shiboken6/doc/typesystem_codeinjection.rst b/sources/shiboken6/doc/typesystem_codeinjection.rst
index e50a4ca7c..d8b740d76 100644
--- a/sources/shiboken6/doc/typesystem_codeinjection.rst
+++ b/sources/shiboken6/doc/typesystem_codeinjection.rst
@@ -338,7 +338,7 @@ Code injections to the class Python initialization function.
return;
Py_INCREF(&PyInjectCode_Type);
- PyModule_AddObject(module, "InjectCode",
+ PyModule_Add(module, "InjectCode",
((PyObject*)&PyInjectCode_Type));
// INJECT-CODE: <value/object-type><inject-code class="target" position="end">
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
index e51872a63..911634e58 100644
--- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
@@ -5610,7 +5610,7 @@ bool CppGenerator::writeEnumInitialization(TextStream &s, const AbstractMetaEnum
<< indent << (isSigned ? "PyLong_FromLongLong" : "PyLong_FromUnsignedLongLong")
<< "(" << pyValue << "));\n" << outdent;
} else {
- s << "PyModule_AddObject(module, \"" << mangledName << "\",\n" << indent
+ s << "PepModule_Add(module, \"" << mangledName << "\",\n" << indent
<< (isSigned ? "PyLong_FromLongLong" : "PyLong_FromUnsignedLongLong") << "("
<< pyValue << "));\n" << outdent;
}
@@ -6412,7 +6412,7 @@ static void writeSubModuleHandling(TextStream &s, const QString &moduleName,
<< subModuleOf << "\"));\n"
<< "if (parentModule.isNull())\n" << indent
<< "return nullptr;\n" << outdent
- << "if (PyModule_AddObject(parentModule.object(), \"" << moduleName
+ << "if (PepModule_Add(parentModule.object(), \"" << moduleName
<< "\", module) < 0)\n"
<< indent << "return nullptr;\n" << outdent << outdent << "}\n";
}
diff --git a/sources/shiboken6/libshiboken/pep384impl.cpp b/sources/shiboken6/libshiboken/pep384impl.cpp
index 5f8424be4..1185d229e 100644
--- a/sources/shiboken6/libshiboken/pep384impl.cpp
+++ b/sources/shiboken6/libshiboken/pep384impl.cpp
@@ -1182,6 +1182,20 @@ int PepModule_AddType(PyObject *module, PyTypeObject *type)
#endif
}
+int PepModule_Add(PyObject *module, const char *name, PyObject *value)
+{
+ // PyModule_Add (added to stable ABI in 3.13) is the replacement for PyModule_AddObject()
+ // (deprecated in 3.13).
+#if !defined(PYPY_VERSION) && ((!defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030D0000) || (defined(Py_LIMITED_API) && Py_LIMITED_API >= 0x030D0000))
+ return PyModule_Add(module, name, value);
+#else
+ int result = PyModule_AddObject(module, name, value);
+ if (result != 0)
+ Py_XDECREF(value);
+ return result;
+#endif
+}
+
/***************************************************************************
*
* PYSIDE-535: The enum/flag error
diff --git a/sources/shiboken6/libshiboken/pep384impl.h b/sources/shiboken6/libshiboken/pep384impl.h
index 346aab881..f48b782a2 100644
--- a/sources/shiboken6/libshiboken/pep384impl.h
+++ b/sources/shiboken6/libshiboken/pep384impl.h
@@ -513,6 +513,8 @@ LIBSHIBOKEN_API PyObject *PepEval_GetFrameBuiltins();
LIBSHIBOKEN_API int PepModule_AddType(PyObject *module, PyTypeObject *type);
+LIBSHIBOKEN_API int PepModule_Add(PyObject *module, const char *name, PyObject *value);
+
/*****************************************************************************
*
* Module Initialization
diff --git a/sources/shiboken6/libshiboken/sbkmodule.cpp b/sources/shiboken6/libshiboken/sbkmodule.cpp
index a9a772068..ed99114a0 100644
--- a/sources/shiboken6/libshiboken/sbkmodule.cpp
+++ b/sources/shiboken6/libshiboken/sbkmodule.cpp
@@ -500,7 +500,7 @@ PyObject *create(const char * /* modName */, PyModuleDef *moduleData)
auto *moduleDirTemplate = PyCFunction_NewEx(module_methods, nullptr, nullptr);
// Turn this function into a bound object, so we have access to the module.
auto *moduleDir = PyObject_CallFunctionObjArgs(partial, moduleDirTemplate, module, nullptr);
- PyModule_AddObject(module, module_methods->ml_name, moduleDir); // steals reference
+ PepModule_Add(module, module_methods->ml_name, moduleDir); // steals reference
// Insert an initial empty table for the module.
NameToTypeFunctionMap empty;
moduleToFuncs.insert(std::make_pair(module, empty));
diff --git a/sources/shiboken6/shibokenmodule/shibokenmodule.cpp b/sources/shiboken6/shibokenmodule/shibokenmodule.cpp
index 38e541fa8..f07eaf0b6 100644
--- a/sources/shiboken6/shibokenmodule/shibokenmodule.cpp
+++ b/sources/shiboken6/shibokenmodule/shibokenmodule.cpp
@@ -117,7 +117,7 @@ PyTuple_SetItem(version, 1, PyLong_FromLong(SHIBOKEN_MINOR_VERSION));
PyTuple_SetItem(version, 2, PyLong_FromLong(SHIBOKEN_MICRO_VERSION));
PyTuple_SetItem(version, 3, Shiboken::String::fromCString(SHIBOKEN_RELEASE_LEVEL));
PyTuple_SetItem(version, 4, PyLong_FromLong(SHIBOKEN_SERIAL));
-PyModule_AddObject(module, "__version_info__", version);
+PepModule_Add(module, "__version_info__", version);
PyModule_AddStringConstant(module, "__version__", SHIBOKEN_VERSION);
VoidPtr::addVoidPtrToModule(module);
Shiboken::initShibokenSupport(module);