diff Python/import.c @ 5980:2894bb49e2ee legacy-trunk

Use string interning and caching to get speedups on the mac (Jack).
author Guido van Rossum <guido@python.org>
date Tue, 12 Aug 1997 14:53:39 +0000
parents 222faeb43d02
children 292193170da1
line wrap: on
line diff
--- a/Python/import.c	Tue Aug 12 14:51:52 1997 +0000
+++ b/Python/import.c	Tue Aug 12 14:53:39 1997 +0000
@@ -570,7 +570,17 @@
 		if ((int)strlen(buf) != len)
 			continue; /* v contains '\0' */
 #ifdef macintosh
-		if ( PyMac_FindResourceModule(name, buf) ) {
+#ifdef INTERN_STRINGS
+		/* 
+		** 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). 
+		*/
+		PyString_InternInPlace(&PyList_GET_ITEM(path, i));
+		v = PyList_GET_ITEM(path, i);
+#endif
+		if ( PyMac_FindResourceModule((PyStringObject *)v, name, buf) ) {
 			static struct filedescr resfiledescr =
 				{"", "", PY_RESOURCE};
 			
@@ -579,6 +589,11 @@
 #endif
 		if (len > 0 && buf[len-1] != SEP)
 			buf[len++] = SEP;
+#ifdef macintosh
+		fdp = PyMac_FindModuleExtension(buf, &len, name);
+		if ( fdp )
+			fp = fopen(buf, fdp->mode);
+#else
 #ifdef IMPORT_8x3_NAMES
 		/* see if we are searching in directory dos_8x3 */
 		if (len > 7 && !strncmp(buf + len - 8, "dos_8x3", 7)){
@@ -604,6 +619,7 @@
 			if (fp != NULL)
 				break;
 		}
+#endif /* !macintosh */
 		if (fp != NULL)
 			break;
 	}