Insert newly created caches into reference data structure.
All caches used in the application must be in the cache reference list so internal references can be tracked correctly. Failing to have newly created caches in the list would cause the cache to be deallocated while references were still present.
This commit is contained in:
parent
766a9b2f61
commit
49b44b277f
|
@ -275,9 +275,18 @@ FcCacheInsert (FcCache *cache, struct stat *cache_stat)
|
|||
s->cache = cache;
|
||||
s->size = cache->size;
|
||||
s->ref = 1;
|
||||
s->cache_dev = cache_stat->st_dev;
|
||||
s->cache_ino = cache_stat->st_ino;
|
||||
s->cache_mtime = cache_stat->st_mtime;
|
||||
if (cache_stat)
|
||||
{
|
||||
s->cache_dev = cache_stat->st_dev;
|
||||
s->cache_ino = cache_stat->st_ino;
|
||||
s->cache_mtime = cache_stat->st_mtime;
|
||||
}
|
||||
else
|
||||
{
|
||||
s->cache_dev = 0;
|
||||
s->cache_ino = 0;
|
||||
s->cache_mtime = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Insert into all fcCacheChains
|
||||
|
@ -658,6 +667,8 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, FcStrSet *dirs)
|
|||
|
||||
FcSerializeDestroy (serialize);
|
||||
|
||||
FcCacheInsert (cache, NULL);
|
||||
|
||||
return cache;
|
||||
|
||||
bail2:
|
||||
|
|
Loading…
Reference in New Issue