diff options
author | Guido van Rossum <guido@python.org> | 1997-09-09 18:53:47 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-09-09 18:53:47 (GMT) |
commit | a86f77d4dd5dc6dc8062c8645a2f6e5fbba3767d (patch) | |
tree | 121918d57ed942cc13e42c5dcee1489d9b5b7def /Python/import.c | |
parent | b95901ec2e9bed764bffcd80e52f0771d9b9cb9e (diff) | |
download | cpython-a86f77d4dd5dc6dc8062c8645a2f6e5fbba3767d.zip cpython-a86f77d4dd5dc6dc8062c8645a2f6e5fbba3767d.tar.gz cpython-a86f77d4dd5dc6dc8062c8645a2f6e5fbba3767d.tar.bz2 |
Crrected a flow control error that caused the wrong error message when
load-module() didn't find a built-in or frozen module. Also got rid
of is_frozen(), which duplicated the functionality of
find_frozen()!=NULL.
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/Python/import.c b/Python/import.c index 3bf205f..2192afa 100644 --- a/Python/import.c +++ b/Python/import.c @@ -546,6 +546,7 @@ load_source_module(name, pathname, fp) static PyObject *load_module Py_PROTO((char *, FILE *, char *, int)); static struct filedescr *find_module Py_PROTO((char *, PyObject *, char *, int, FILE **)); +static struct _frozen *find_frozen Py_PROTO((char *name)); /* Load a package and return its module object WITH INCREMENTED REFERENCE COUNT */ @@ -622,22 +623,6 @@ is_builtin(name) return 0; } -/* Helper to test for frozen module */ - -static int -is_frozen(name) - char *name; -{ - struct _frozen *p; - for (p = PyImport_FrozenModules; ; p++) { - if (p->name == NULL) - break; - if (strcmp(p->name, name) == 0) - return 1; - } - return 0; -} - /* Search the path (default sys.path) for a module. Return the corresponding filedescr struct, and (via return arguments) the @@ -666,7 +651,7 @@ find_module(name, path, buf, buflen, p_fp) static struct filedescr fd = {"", "", C_BUILTIN}; return &fd; } - if (is_frozen(name)) { + if (find_frozen(name) != NULL) { static struct filedescr fd = {"", "", PY_FROZEN}; return &fd; } @@ -837,14 +822,14 @@ load_module(name, fp, buf, type) else err = PyImport_ImportFrozenModule(name); if (err < 0) - goto failure; + return NULL; if (err == 0) { PyErr_Format(PyExc_ImportError, "Purported %s module %.200s not found", type == C_BUILTIN ? "builtin" : "frozen", name); - goto failure; + return NULL; } modules = PyImport_GetModuleDict(); m = PyDict_GetItemString(modules, name); @@ -855,13 +840,12 @@ load_module(name, fp, buf, type) type == C_BUILTIN ? "builtin" : "frozen", name); - goto failure; + return NULL; } Py_INCREF(m); break; default: - failure: PyErr_Format(PyExc_ImportError, "Don't know how to import %.200s (type code %d)", name, type); @@ -1636,7 +1620,7 @@ imp_is_frozen(self, args) char *name; if (!PyArg_ParseTuple(args, "s", &name)) return NULL; - return PyInt_FromLong(is_frozen(name)); + return PyInt_FromLong(find_frozen(name) != NULL); } static FILE * |