The C API PyImport_AddModule() returns a borrowed reference using a special dance added by commit 4db8988 of issue #86160:
PyObject*ref=PyWeakref_NewRef(mod, NULL);
Py_DECREF(mod);
if (ref==NULL) {
returnNULL;
}
mod=PyWeakref_GetObject(ref);
Py_DECREF(ref);Borrowed references are bad:
I proposed to:
- Add a new
PyImport_AddModuleRef(const char *name) function, similar to PyImport_AddModule() but return a strong reference - Deprecate
PyImport_AddModule() and PyImport_AddModuleObject()
Linked PRs
The C API PyImport_AddModule() returns a borrowed reference using a special dance added by commit 4db8988 of issue #86160:
Borrowed references are bad:
I proposed to:
PyImport_AddModuleRef(const char *name)function, similar toPyImport_AddModule()but return a strong referencePyImport_AddModule()andPyImport_AddModuleObject()Linked PRs