From d76bc7abac37ac345878ed2db7e264f59fc79985 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Wed, 18 Apr 2012 10:55:43 -0400 Subject: rollback 005fd1fe31ab (see #14609 and #14582) Being able to overload a sys.module entry during import of a module was broken by this changeset. --- Python/import.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'Python/import.c') 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) - -- cgit v1.2.1