C API: Add PyImport_AddModuleRef() function
-
-
Notifications
You must be signed in to change notification settings - Fork 34.7k
Closed
Closed
Description
opened
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) { return NULL; } mod = PyWeakref_GetObject(ref); Py_DECREF(ref);
Borrowed references are bad:
- "Functions must not return borrowed references" says https://devguide.python.org/developer-workflow/c-api/index.html
- Unclear lifetimes of borrowed references capi-workgroup/problems#5
I proposed to:
- Add a new
PyImport_AddModuleRef(const char *name)function, similar toPyImport_AddModule()but return a strong reference - Deprecate
PyImport_AddModule()andPyImport_AddModuleObject()
Linked PRs
Metadata
Metadata
Assignees
No one assigned
Fields
No fields configured for issues without a type.
Projects
No projects
Milestone
No milestone
Relationships
None yet
Development
No branches or pull requests