◐ Shell
clean mode source ↗

C API: Add PyImport_AddModuleRef() function

Skip to content

Navigation Menu

Sign in

Appearance settings

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Closed

@vstinner

Description

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:

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

Metadata

Metadata

Assignees

No one assigned

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions