zlaski 02/11/10 15:10:02 Modified: live/gcc3/gcc Tag: fearless-kitty-branch cppfiles.c Log: Snaroff's header cache fix. Revision Changes Path No revision No revision 1.46.4.3 +32 -31 src/live/gcc3/gcc/cppfiles.c Index: cppfiles.c =================================================================== RCS file: /cvs/Darwin/src/live/gcc3/gcc/cppfiles.c,v retrieving revision 1.46.4.2 retrieving revision 1.46.4.3 diff -u -r1.46.4.2 -r1.46.4.3 --- cppfiles.c 2002/11/06 19:51:31 1.46.4.2 +++ cppfiles.c 2002/11/10 23:10:02 1.46.4.3 @@ -718,7 +718,7 @@ /* Search directory path for the file. */ /* APPLE LOCAL -header-mapfile bandaid for buffer overflows */ name = (char *) alloca (strlen (fname) + pfile->max_include_len + 2 + 500); - + /* APPLE LOCAL begin header search */ if ((type != IT_INCLUDE_NEXT) && (CPP_OPTION (pfile, bracket_include) == CPP_OPTION (pfile, quote_include))) @@ -1861,38 +1861,11 @@ } } } - else /* we have a slash...check to see if it is a framework */ + else /* we have a slash... */ { char *basename = strchr(fname, '/'); - - memcpy(name, fname, basename-fname); - name[basename-fname] = 0; - strcat(name, ".framework"); - if ((entry = htab_find(header_htab, name))) - { - int len = entry->include_directory->len; - memcpy(name, entry->include_directory->name, entry->include_directory->len); - name[len] = '/'; - strcpy (&name[len + 1], entry->file_name); - strcat (name, "/Headers"); - strcat (name, basename); // add the base name - if ((file = open_file (pfile, name))) - { - file->foundhere = entry->include_directory; - return file; - } - memcpy(name, entry->include_directory->name, entry->include_directory->len); - name[len] = '/'; - strcpy (&name[len + 1], entry->file_name); - strcat (name, "/PrivateHeaders"); - strcat (name, basename); // add the base name - if ((file = open_file (pfile, name))) - { - file->foundhere = entry->include_directory; - return file; - } - } - /* at this point, we have a non-framework path with slashes */ + + /* first, look for a directory */ memcpy(name, fname, basename-fname); name[basename-fname] = 0; @@ -1917,6 +1890,34 @@ } } while ((hattr = hattr->next)); + } + } + /* now, look for a framework */ + memcpy(name, fname, basename-fname); + name[basename-fname] = 0; + strcat(name, ".framework"); + if ((entry = htab_find(header_htab, name))) + { + int len = entry->include_directory->len; + memcpy(name, entry->include_directory->name, entry->include_directory->len); + name[len] = '/'; + strcpy (&name[len + 1], entry->file_name); + strcat (name, "/Headers"); + strcat (name, basename); // add the base name + if ((file = open_file (pfile, name))) + { + file->foundhere = entry->include_directory; + return file; + } + memcpy(name, entry->include_directory->name, entry->include_directory->len); + name[len] = '/'; + strcpy (&name[len + 1], entry->file_name); + strcat (name, "/PrivateHeaders"); + strcat (name, basename); // add the base name + if ((file = open_file (pfile, name))) + { + file->foundhere = entry->include_directory; + return file; } } }