From: Jack Jansen <jack.jansen@cwi.nl>
Date: Fri, 24 Jan 2003 16:15:45 +0000 (+0000)
Subject: MacPython-OS9 specific fix: If there are non-string items on sys.path don't try to... 
X-Git-Tag: v2.3c1~2349
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9363dca3f818fa046bdef5d8dbd73f2cbde42fb0;p=python

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.
---

diff --git a/Python/import.c b/Python/import.c
index 5df1f0a1d4..b2cefc0a7e 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -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