diff options
author | Brett Cannon <brett@python.org> | 2015-08-14 18:06:43 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2015-08-14 18:06:43 (GMT) |
commit | 7c97a05618733b93f0a6e80ad5b672c2f966f448 (patch) | |
tree | eebf9b4118d5e5f7e6d69b1ff6e64f8f3ba6c2a4 /Python/ceval.c | |
parent | f7a92673ab38f43c1d274e1663f62da394f4f153 (diff) | |
parent | 3008bc0f4abb3f71433b1fcd97cc801da0a866cc (diff) | |
download | cpython-7c97a05618733b93f0a6e80ad5b672c2f966f448.zip cpython-7c97a05618733b93f0a6e80ad5b672c2f966f448.tar.gz cpython-7c97a05618733b93f0a6e80ad5b672c2f966f448.tar.bz2 |
Merge from 3.5.0 for issue #24492
Diffstat (limited to 'Python/ceval.c')
-rw-r--r-- | Python/ceval.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index ac52ad9..8d2cdc2 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -5085,19 +5085,24 @@ import_from(PyObject *v, PyObject *name) sys.modules. */ PyErr_Clear(); pkgname = _PyObject_GetAttrId(v, &PyId___name__); - if (pkgname == NULL) - return NULL; + if (pkgname == NULL) { + goto error; + } fullmodname = PyUnicode_FromFormat("%U.%U", pkgname, name); Py_DECREF(pkgname); - if (fullmodname == NULL) + if (fullmodname == NULL) { return NULL; + } x = PyDict_GetItem(PyImport_GetModuleDict(), fullmodname); - if (x == NULL) - PyErr_Format(PyExc_ImportError, "cannot import name %R", name); - else - Py_INCREF(x); Py_DECREF(fullmodname); + if (x == NULL) { + goto error; + } + Py_INCREF(x); return x; + error: + PyErr_Format(PyExc_ImportError, "cannot import name %R", name); + return NULL; } static int |