[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Wed Apr 6 05:45:20 UTC 2016


 src/fccache.c |   31 +------------------------------
 src/fcdir.c   |   31 ++++++-------------------------
 src/fcint.h   |    8 +-------
 3 files changed, 8 insertions(+), 62 deletions(-)

New commits:
commit d179cbc2536af16cf0f4992e0a4b2d751437ee6c
Author: Akira TAGOH <akira at tagoh.org>
Date:   Wed Apr 6 14:39:15 2016 +0900

    Revert "Workaround another race condition issue"
    
    This reverts commit f44bfad235e63bb792c38e16ae1fbd281ec1453b.

diff --git a/src/fccache.c b/src/fccache.c
index b681a5e..7d6396c 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -587,33 +587,6 @@ FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat)
     return cache->checksum == (int) dir_stat->st_mtime && fnano;
 }
 
-static FcBool
-FcCacheDirsValid (FcConfig *config, FcCache *cache)
-{
-    FcStrSet *dirs = FcStrSetCreateEx (FCSS_GROW_BY_64);
-    FcBool ret = FcFalse;
-    const FcChar8 *sysroot = FcConfigGetSysRoot (config);
-    FcChar8 *d;
-
-    if (!dirs)
-	goto bail;
-    if (sysroot)
-	d = FcStrBuildFilename (sysroot, FcCacheDir (cache), NULL);
-    else
-	d = FcStrdup (FcCacheDir (cache));
-    if (!FcDirScanOnly (dirs, d, config))
-	goto bail1;
-    ret = cache->dirs_count == dirs->num;
-    if (FcDebug () & FC_DBG_CACHE)
-	printf ("%s: cache: %d, fs: %d\n", d, cache->dirs_count, dirs->num);
-
-bail1:
-    FcStrSetDestroy (dirs);
-    FcStrFree (d);
-bail:
-    return ret;
-}
-
 /*
  * Map a cache file into memory
  */
@@ -628,8 +601,7 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di
     cache = FcCacheFindByStat (fd_stat);
     if (cache)
     {
-	if (FcCacheTimeValid (config, cache, dir_stat) &&
-	    FcCacheDirsValid (config, cache))
+	if (FcCacheTimeValid (config, cache, dir_stat))
 	    return cache;
 	FcDirCacheUnload (cache);
 	cache = NULL;
@@ -681,7 +653,6 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di
 	cache->version < FC_CACHE_VERSION_NUMBER ||
 	cache->size != (intptr_t) fd_stat->st_size ||
 	!FcCacheTimeValid (config, cache, dir_stat) ||
-	!FcCacheDirsValid (config, cache) ||
 	!FcCacheInsert (cache, fd_stat))
     {
 	if (allocated)
diff --git a/src/fcdir.c b/src/fcdir.c
index 81c98b6..fd62a34 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -233,8 +233,7 @@ FcDirScanConfig (FcFontSet	*set,
 		 FcBlanks	*blanks,
 		 const FcChar8	*dir,
 		 FcBool		force, /* XXX unused */
-		 FcConfig	*config,
-		 FcBool		scanOnly)
+		 FcConfig	*config)
 {
     DIR			*d;
     struct dirent	*e;
@@ -250,7 +249,7 @@ FcDirScanConfig (FcFontSet	*set,
     if (!set && !dirs)
 	return FcTrue;
 
-    if (!blanks && !scanOnly)
+    if (!blanks)
 	blanks = FcConfigGetBlanks (config);
 
     /* freed below */
@@ -303,17 +302,7 @@ FcDirScanConfig (FcFontSet	*set,
      * Scan file files to build font patterns
      */
     for (i = 0; i < files->num; i++)
-    {
-	if (scanOnly)
-	{
-	    if (FcFileIsDir (files->strs[i]))
-		FcFileScanConfig (NULL, dirs, NULL, files->strs[i], config);
-	}
-	else
-	{
-	    FcFileScanConfig (set, dirs, blanks, files->strs[i], config);
-	}
-    }
+	FcFileScanConfig (set, dirs, blanks, files->strs[i], config);
 
 bail2:
     FcStrSetDestroy (files);
@@ -337,15 +326,7 @@ FcDirScan (FcFontSet	    *set,
     if (cache || !force)
 	return FcFalse;
 
-    return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent (), FcFalse);
-}
-
-FcBool
-FcDirScanOnly (FcStrSet		*dirs,
-	       const FcChar8	*dir,
-	       FcConfig		*config)
-{
-    return FcDirScanConfig (NULL, dirs, NULL, dir, FcTrue, config, FcTrue);
+    return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent ());
 }
 
 /*
@@ -385,7 +366,7 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
     /*
      * Scan the dir
      */
-    if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config, FcFalse))
+    if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config))
 	goto bail2;
 
     /*
@@ -440,7 +421,7 @@ FcDirCacheRescan (const FcChar8 *dir, FcConfig *config)
     /*
      * Scan the dir
      */
-    if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config, FcFalse))
+    if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config))
 	goto bail1;
     /*
      * Rebuild the cache object
diff --git a/src/fcint.h b/src/fcint.h
index ee6cc99..ac911ad 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -851,13 +851,7 @@ FcDirScanConfig (FcFontSet	*set,
 		 FcBlanks	*blanks,
 		 const FcChar8	*dir,
 		 FcBool		force,
-		 FcConfig	*config,
-		 FcBool		scanOnly);
-
-FcPrivate FcBool
-FcDirScanOnly (FcStrSet		*dirs,
-	       const FcChar8	*dir,
-	       FcConfig		*config);
+		 FcConfig	*config);
 
 /* fcfont.c */
 FcPrivate int


More information about the Fontconfig mailing list