diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2021-09-28 21:12:50 (GMT) |
---|---|---|
committer | Pablo Galindo <pablogsal@gmail.com> | 2021-09-29 11:27:08 (GMT) |
commit | 2ca4ab8031107f9e474e2ce26561ab9ad51faf9c (patch) | |
tree | b653a0877f887a8d40bbf52bebc30d59589226b3 /Python/import.c | |
parent | 3397e3192ccc95ff7076f735930d2f4c60fbc278 (diff) | |
download | cpython-2ca4ab8031107f9e474e2ce26561ab9ad51faf9c.zip cpython-2ca4ab8031107f9e474e2ce26561ab9ad51faf9c.tar.gz cpython-2ca4ab8031107f9e474e2ce26561ab9ad51faf9c.tar.bz2 |
[3.10] bpo-45307: Restore private C API function _PyImport_FindExtensionObject() (GH-28594)
py2exe and PyOxidizer rely on this API.
It will be removed in Python 3.11.
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Python/import.c b/Python/import.c index 7301fcc..f2b30af 100644 --- a/Python/import.c +++ b/Python/import.c @@ -556,6 +556,23 @@ import_find_extension(PyThreadState *tstate, PyObject *name, return mod; } +PyObject * +_PyImport_FindExtensionObject(PyObject *name, PyObject *filename) +{ + PyThreadState *tstate = _PyThreadState_GET(); + PyObject *mod = import_find_extension(tstate, name, filename); + if (mod) { + PyObject *ref = PyWeakref_NewRef(mod, NULL); + Py_DECREF(mod); + if (ref == NULL) { + return NULL; + } + mod = PyWeakref_GetObject(ref); + Py_DECREF(ref); + } + return mod; /* borrowed reference */ +} + /* Get the module object corresponding to a module name. First check the modules dictionary if there's one there, |