Global cache time checking was using wrong file name and computing wrong

count of fonts per file
This commit is contained in:
Keith Packard 2003-03-12 22:15:39 +00:00
parent 89b61da31f
commit a8386abc91
3 changed files with 12 additions and 8 deletions

View File

@ -309,14 +309,14 @@ FcCacheHash (const FcChar8 *string, int len)
* Verify the saved timestamp for a file
*/
FcBool
FcGlobalCacheCheckTime (FcGlobalCacheInfo *info)
FcGlobalCacheCheckTime (const FcChar8 *file, FcGlobalCacheInfo *info)
{
struct stat statb;
if (stat ((char *) info->file, &statb) < 0)
if (stat ((char *) file, &statb) < 0)
{
if (FcDebug () & FC_DBG_CACHE)
printf (" file missing\n");
printf (" file %s missing\n", file);
return FcFalse;
}
if (statb.st_mtime != info->time)
@ -549,7 +549,7 @@ FcGlobalCacheScanDir (FcFontSet *set,
* See if the timestamp recorded in the global cache
* matches the directory time, if not, return False
*/
if (!FcGlobalCacheCheckTime (&d->info))
if (!FcGlobalCacheCheckTime (d->info.file, &d->info))
{
if (FcDebug () & FC_DBG_CACHE)
printf ("\tdir cache entry time mismatch\n");
@ -633,7 +633,7 @@ FcGlobalCacheFileGet (FcGlobalCache *cache,
}
}
if (count)
*count = max;
*count = max + 1;
return match;
}

View File

@ -70,7 +70,7 @@ FcFileScan (FcFontSet *set,
/*
* Found a cache entry for the file
*/
if (FcGlobalCacheCheckTime (&cache_file->info))
if (FcGlobalCacheCheckTime (file, &cache_file->info))
{
name = cache_file->name;
need_scan = FcFalse;
@ -89,7 +89,8 @@ FcFileScan (FcFontSet *set,
strlen ((const char *) file),
FcFalse)))
{
if (FcGlobalCacheCheckTime (&cache_dir->info))
if (FcGlobalCacheCheckTime (cache_dir->info.file,
&cache_dir->info))
{
font = 0;
need_scan = FcFalse;
@ -199,6 +200,9 @@ FcDirScan (FcFontSet *set,
strcat ((char *) file, "/");
base = file + strlen ((char *) file);
if (FcDebug () & FC_DBG_SCAN)
printf ("\tScanning dir %s\n", dir);
d = opendir ((char *) dir);
if (!d)

View File

@ -338,7 +338,7 @@ void
FcGlobalCacheDestroy (FcGlobalCache *cache);
FcBool
FcGlobalCacheCheckTime (FcGlobalCacheInfo *info);
FcGlobalCacheCheckTime (const FcChar8*file, FcGlobalCacheInfo *info);
void
FcGlobalCacheReferenced (FcGlobalCache *cache,