1. 26 Oct, 2007 1 commit
  2. 15 Sep, 2006 1 commit
  3. 05 Sep, 2006 3 commits
    • Keith Packard's avatar
      Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven) · 23816bf9
      Keith Packard authored
      Using a simple shell script that processes the public headers, two header
      files are constructed that map public symbols to hidden internal aliases
      avoiding the assocated PLT entry for referring to a public symbol.
      
      A few mistakes in the FcPrivate/FcPublic annotations were also discovered
      through this process
      23816bf9
    • Keith Packard's avatar
      Make cache reference counting more efficient. · 17389539
      Keith Packard authored
      Eliminate need to reference cache object once per cached font, instead
      just count the number of fonts used from the cache and bump the reference
      count once by that amount. I think this makes this refernece technique
      efficient enough for use.
      17389539
    • Keith Packard's avatar
      Reference count cache objects. · 9e612141
      Keith Packard authored
      Caches contain patterns and character sets which are reference counted and
      visible to applications. Reference count the underlying cache object so that
      it stays around until all reference objects are no longer in use.
      
      This is less efficient than just leaving all caches around forever, but does
      avoid eternal size increases in case applications ever bother to actually
      look for changes in the font configuration.
      9e612141
  4. 03 Sep, 2006 2 commits
    • Keith Packard's avatar
      Fix missing initialization/destruction of new 'scan' target subst list. · fb6e30ab
      Keith Packard authored
      Forgot to initialize and destroy the new substitution list for the 'scan'
      match target.
      fb6e30ab
    • Keith Packard's avatar
      Add FcMatchScan to resolve Delicious font matching issues (bug #6769) · c2c6976d
      Keith Packard authored
      The Delicious family includes one named Delicious Heavy, a bold variant
      which is unfortunately marked as having normal weight. Because the family
      name is 'Delicious', fontconfig accidentally selects this font instead of
      the normal weight variant. The fix here rewrites the scanned data by running
      the scanned pattern through a new substitution sequence tagged with
      <match target=scan>; a sample for the Delicious family is included to
      demonstrate how it works (and fix Delicious at the same time).
      
      Also added was a new match predicate -- the 'decorative' predicate which is
      automatically detected in fonts by searching style names for key decorative
      phrases like SmallCaps, Shadow, Embosed and Antiqua. Suggestions for
      additional decorative key words are welcome. This should have little effect
      on font matching except when two fonts share the same characteristics except
      for this value.
      c2c6976d
  5. 01 Sep, 2006 1 commit
    • Keith Packard's avatar
      Pass directory information around in FcCache structure. Freeze charsets. · bc5e487f
      Keith Packard authored
      Instead of passing directory information around in separate variables,
      collect it all in an FcCache structure. Numerous internal and tool
      interfaces changed as a result of this.
      
      Charsets are now pre-frozen before being serialized. This causes them to
      share across multiple fonts in the same cache.
      bc5e487f
  6. 31 Aug, 2006 1 commit
    • Keith Packard's avatar
      Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache. · 2d3387fd
      Keith Packard authored
      Validate cache contents and skip broken caches, looking down cache path for
      valid ones.
      
      Every time a directory is scanned, it will be written to a cache file if
      possible, so fc-cache doesn't need to re-write the cache file. This makes
      detecting when the cache was generated a bit tricky, so we guess that if the
      cache wasn't valid before running and is valid afterwards, the cache file
      was written.
      
      Also, allow empty charsets to be serialized with null leaves/numbers.
      
      Eliminate a leak in FcEdit by switching to FcObject sooner.
      
      Call FcFini from fc-match to make valgrind happy.
      2d3387fd
  7. 30 Aug, 2006 1 commit
    • Keith Packard's avatar
      Rework cache files to use offsets for all data structures. · 7ce19673
      Keith Packard authored
      Replace all of the bank/id pairs with simple offsets, recode several
      data structures to always use offsets inside the library to avoid
      conditional paths. Exposed data structures use pointers to hold offsets,
      setting the low bit to distinguish between offset and pointer.
      
      Use offset-based data structures for lang charset encodings; eliminates
      separate data structure format for that file.
      
      Much testing will be needed; offsets are likely not detected everywhere in
      the library yet.
      7ce19673
  8. 28 Aug, 2006 2 commits
    • Keith Packard's avatar
      Eliminate global cache. Eliminate multi-arch cache code. · 00f059e9
      Keith Packard authored
      With the removal of the in-directory cache files, and the addition of
      per-user cache directories, there is no longer any reason to preserve the
      giant global cache file. Eliminating of this unifies the cache structure
      and simplifies the overall caching strategies greatly.
      00f059e9
    • Keith Packard's avatar
      Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir. · db50cbda
      Keith Packard authored
      Normalized directory names offer protection against looped directory trees
      but cost enormous numbers of system calls (stat per file in the hierarchy).
      Also, cache file directory name contents are validated each time the
      directory is modified, don't re-validate every time the cache file is loaded
      with an access and stat call.
      db50cbda
  9. 04 Aug, 2006 1 commit
  10. 25 Apr, 2006 1 commit
  11. 12 Apr, 2006 1 commit
    • Patrick Lam's avatar
      Fix memory leak (Coverity defect #2089). · 2f02e383
      Patrick Lam authored
      Ignore script if subtable is missing (Coverity defect #2088).
      Fix possible null pointer dereference (Coverity defect #784) and memory
          leak (Coverity defects #785, #786).
      Don't copy FcCharSet if we're going to throw it away anyway. (Reported by
          Kenichi Handa).
      reviewed by: plam
      2f02e383
  12. 11 Apr, 2006 1 commit
    • Patrick Lam's avatar
      Missing bits from previous patches. · 2de24638
      Patrick Lam authored
      Remove extra semi-colon.
      Fix memory leak in error case (Coverity defects #776, #985).
      Fix memory leaks (Coverity defects #779, #781) and memory use after free
          (Coverity defect #780).
      reviewed by: plam
      2de24638
  13. 10 Apr, 2006 2 commits
  14. 06 Feb, 2006 1 commit
  15. 04 Feb, 2006 1 commit
  16. 27 Jan, 2006 1 commit
  17. 26 Jan, 2006 1 commit
  18. 25 Jan, 2006 1 commit
  19. 14 Jan, 2006 1 commit
  20. 09 Jan, 2006 1 commit
  21. 02 Jan, 2006 1 commit
  22. 29 Nov, 2005 4 commits
  23. 18 Nov, 2005 1 commit
  24. 17 Nov, 2005 1 commit
  25. 02 Nov, 2005 1 commit
  26. 15 Sep, 2005 1 commit
  27. 11 Sep, 2005 1 commit
  28. 03 Sep, 2005 1 commit
  29. 27 Aug, 2005 1 commit
  30. 25 Aug, 2005 1 commit
    • Patrick Lam's avatar
      Reinstate the old global cache code. For the forseeable future, it's · 1b7be377
      Patrick Lam authored
          probably all right to use the global cache as it was previously and
          just store filenames and font info, as long as no mmap cache exists in
          the directory. Of course, if an mmap cache exists, use that instead.
      If a directory cache does not exist or is invalid, load the fonts for just
          that directory using the old codepath.
      Fix premature free of the FcPatterns belonging to the FcFontSet which we
          create from the mmapped files.
      1b7be377
  31. 24 Aug, 2005 1 commit
    • Patrick Lam's avatar
      Overhaul the serialization system to create one mmapable file per directory · 4262e0b3
      Patrick Lam authored
          and distribute bytes for each directory from a single malloc for that
          directory. Store pointers as differences between the data pointed to
          and the pointer's address (s_off = s - v). Don't serialize data
          structures that never actually get serialized. Separate strings used
          for keys from strings used for values (in FcPatternElt and FcValue,
          respectively). Bump FC_CACHE_VERSION to 2.
      4262e0b3
  32. 25 Jul, 2005 1 commit