diff options
author | Benjamin Peterson <benjamin@python.org> | 2012-04-18 10:55:43 -0400 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2012-04-18 10:55:43 -0400 |
commit | d76bc7abac37ac345878ed2db7e264f59fc79985 (patch) | |
tree | 0c933be1c1ebc649ba9279935cc75c13b05346fd /Python/import.c | |
parent | da20cd2b6bf40d712f6296b9e21ff099b22aab71 (diff) | |
download | cpython-git-d76bc7abac37ac345878ed2db7e264f59fc79985.tar.gz |
rollback 005fd1fe31ab (see #14609 and #14582)
Being able to overload a sys.module entry during import of a module was broken
by this changeset.
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/Python/import.c b/Python/import.c index 07c3d6f40c..11d58aefe4 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2447,22 +2447,15 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals, Py_DECREF(partition); if (level == 0) { - if (PyUnicode_GET_LENGTH(name) == - PyUnicode_GET_LENGTH(front)) { - final_mod = mod; - } - else { - final_mod = PyDict_GetItem(interp->modules, front); - if (final_mod == NULL) { - PyErr_Format(PyExc_KeyError, - "%R not in sys.modules as expected", front); - } - } + final_mod = PyDict_GetItem(interp->modules, front); Py_DECREF(front); if (final_mod == NULL) { - goto error_with_unlock; + PyErr_Format(PyExc_KeyError, + "%R not in sys.modules as expected", front); + } + else { + Py_INCREF(final_mod); } - Py_INCREF(final_mod); } else { Py_ssize_t cut_off = PyUnicode_GET_LENGTH(name) - |