Commit a8386abc authored by Keith Packard's avatar Keith Packard
Browse files

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

    count of fonts per file
parent 89b61da3
......@@ -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;
}
......
......@@ -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)
......
......@@ -338,7 +338,7 @@ void
FcGlobalCacheDestroy (FcGlobalCache *cache);
FcBool
FcGlobalCacheCheckTime (FcGlobalCacheInfo *info);
FcGlobalCacheCheckTime (const FcChar8*file, FcGlobalCacheInfo *info);
void
FcGlobalCacheReferenced (FcGlobalCache *cache,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment