FcStrList *list;
FcChar8 *dir;
-#if 0
- if (config->cache)
- FcGlobalCacheLoad (cache, config->cache);
-#endif
- if (config->fonts[FcSetSystem])
- return FcTrue;
-
fonts = FcFontSetCreate ();
if (!fonts)
goto bail0;
-
-#if 0
+
cache = FcGlobalCacheCreate ();
if (!cache)
goto bail1;
-#endif
- cached_fonts = FcCacheRead(config);
+ if (config->cache)
+ FcGlobalCacheLoad (cache, config->cache);
+
+ cached_fonts = FcCacheRead(config, cache);
if (!cached_fonts)
{
list = FcConfigGetFontDirs (config);
{
if (FcConfigAcceptFont (config, cached_fonts->fonts[i]))
FcFontSetAdd (fonts, cached_fonts->fonts[i]);
+
+ cached_fonts->fonts[i] = 0; /* prevent free in FcFontSetDestroy */
}
+ cached_fonts->nfont = 0;
FcFontSetDestroy (cached_fonts);
}
if (FcDebug () & FC_DBG_FONTSET)
FcFontSetPrint (fonts);
-#if 0
if (config->cache)
FcGlobalCacheSave (cache, config->cache);
FcGlobalCacheDestroy (cache);
-#endif
FcConfigSetFonts (config, fonts, FcSetSystem);
break;
case FcOpString:
v.type = FcTypeString;
- v.u.s = FcObjectStaticName(e->u.sval);
+ v.u.s = FcStrStaticName(e->u.sval);
v = FcValueSave (v);
break;
case FcOpMatrix:
switch (e->op) {
case FcOpPlus:
v.type = FcTypeString;
- v.u.s = FcObjectStaticName (FcStrPlus (vl.u.s, vr.u.s));
+ v.u.s = FcStrStaticName (FcStrPlus (vl.u.s, vr.u.s));
if (!v.u.s)
v.type = FcTypeVoid;