Kaydet (Commit) 9363dca3 authored tarafından Jack Jansen's avatar Jack Jansen

MacPython-OS9 specific fix: If there are non-string items on sys.path don't try…

MacPython-OS9 specific fix: If there are non-string items on sys.path don't try to intern them. This has the theoretical problem that resource filenames on sys.path cannot be unicode objects, but in practice that shouldn't matter.
üst 00640266
......@@ -1214,23 +1214,26 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf,
** Speedup: each sys.path item is interned, and
** FindResourceModule remembers which items refer to
** folders (so we don't have to bother trying to look
** into them for resources).
** into them for resources). We only do this for string
** items.
*/
PyString_InternInPlace(&PyList_GET_ITEM(path, i));
v = PyList_GET_ITEM(path, i);
if (PyMac_FindResourceModule((PyStringObject *)v, name, buf)) {
static struct filedescr resfiledescr =
{"", "", PY_RESOURCE};
Py_XDECREF(copy);
return &resfiledescr;
}
if (PyMac_FindCodeResourceModule((PyStringObject *)v, name, buf)) {
static struct filedescr resfiledescr =
{"", "", PY_CODERESOURCE};
if (PyString_Check(PyList_GET_ITEM(path, i))) {
PyString_InternInPlace(&PyList_GET_ITEM(path, i));
v = PyList_GET_ITEM(path, i);
if (PyMac_FindResourceModule((PyStringObject *)v, name, buf)) {
static struct filedescr resfiledescr =
{"", "", PY_RESOURCE};
Py_XDECREF(copy);
return &resfiledescr;
}
if (PyMac_FindCodeResourceModule((PyStringObject *)v, name, buf)) {
static struct filedescr resfiledescr =
{"", "", PY_CODERESOURCE};
Py_XDECREF(copy);
return &resfiledescr;
Py_XDECREF(copy);
return &resfiledescr;
}
}
#endif
if (len > 0 && buf[len-1] != SEP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment