From 603e76e882d6cf660c205bc98d994f92293c2247 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Mon, 22 Jul 2002 12:35:22 +0000 Subject: Fixed potential refcount problems with interned strings, adapted comments, added a bit more trace output if verbose > 1. --- Mac/Python/macimport.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Mac/Python/macimport.c b/Mac/Python/macimport.c index cc562f1..56bda1f 100644 --- a/Mac/Python/macimport.c +++ b/Mac/Python/macimport.c @@ -68,7 +68,7 @@ findnamedresource( Handle h; /* - ** If we have interning find_module takes care of interning all + ** Find_module takes care of interning all ** sys.path components. We then keep a record of all sys.path ** components for which GetFInfo has failed (usually because the ** component in question is a folder), and we don't try opening these @@ -85,9 +85,13 @@ findnamedresource( return 0; } if ( FSMakeFSSpec(0, 0, Pstring(filename), &fss) != noErr ) { - if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned ) + /* doesn't exist or is folder */ + if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned ) { + Py_INCREF(obj); not_a_file[max_not_a_file++] = obj; - /* doesn't exist or is folder */ + if (Py_VerboseFlag > 1) + PySys_WriteStderr("# %s is not a file\n", filename); + } return 0; } if ( fssequal(&fss, &PyMac_ApplicationFSSpec) ) { @@ -100,10 +104,14 @@ findnamedresource( UseResFile(PyMac_AppRefNum); filerh = -1; } else { - if ( FSpGetFInfo(&fss, &finfo) != noErr ) { - if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned ) + if ( FSpGetFInfo(&fss, &finfo) != noErr ) { + /* doesn't exist or is folder */ + if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned ) { + Py_INCREF(obj); not_a_file[max_not_a_file++] = obj; - /* doesn't exist or is folder */ + if (Py_VerboseFlag > 1) + PySys_WriteStderr("# %s is not a file\n", filename); + } return 0; } oldrh = CurResFile(); @@ -114,6 +122,8 @@ findnamedresource( } if ( dataptr == NULL ) SetResLoad(0); + if (Py_VerboseFlag > 1) + PySys_WriteStderr("# Look for ('PYC ', %s) in %s\n", module, filename); h = Get1NamedResource(restype, Pstring(module)); SetResLoad(1); ok = (h != NULL); -- cgit v0.12