• Alexander Larsson's avatar
    Cache: Rewrite relocated paths in earlier · c42402d0
    Alexander Larsson authored
    This changes the rewriting of the FC_FILE values for relocated caches to an earlier stage
    while reading the cache. This is better, because it means all APIs will report the
    rewritten paths, not just the once that use the list apis.
    We do this by detecting the relocated case and duplicating the FcPattern and FcPatternElm
    in an cache allocation (which will die with the cache) and then reusing the FcValueLists
    from the cache.
    This means that in the rewritten case we will use some more memory, but not the full
    size of the cache. In a test here I had 800k of relocated caches, but ~200k of wasted
    on duplicating the objects.
    This should fix https://bugs.freedesktop.org/show_bug.cgi?id=106618
fcpat.c 34.6 KB