mirror of
https://github.com/python/cpython.git
synced 2024-11-28 20:33:54 +08:00
Fixed potential refcount problems with interned strings, adapted comments, added a bit more trace output if verbose > 1.
This commit is contained in:
parent
66e794d743
commit
603e76e882
@ -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 )
|
||||
not_a_file[max_not_a_file++] = obj;
|
||||
/* 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;
|
||||
if (Py_VerboseFlag > 1)
|
||||
PySys_WriteStderr("# %s is not a file\n", filename);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if ( fssequal(&fss, &PyMac_ApplicationFSSpec) ) {
|
||||
@ -101,9 +105,13 @@ findnamedresource(
|
||||
filerh = -1;
|
||||
} else {
|
||||
if ( FSpGetFInfo(&fss, &finfo) != noErr ) {
|
||||
if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned )
|
||||
not_a_file[max_not_a_file++] = obj;
|
||||
/* 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;
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user