1. 09 Jan, 2018 1 commit
  2. 12 Jun, 2017 1 commit
  3. 07 Jun, 2017 1 commit
    • Florent Rougon's avatar
      FcCharSetHash(): use the 'numbers' values to compute the hash · c37eeb8f
      Florent Rougon authored
      Before this commit, FcCharSetHash() repeatedly used the address of the
      'numbers' array of an FcCharSet to compute the FcCharSet hash, instead
      of the value of each array element. This is not good for even spreading
      of the FcCharSet objects among the various buckets of the hash table
      (and should thus reduce performance). This bug appears to have been
      mistakenly introduced in commit
      cd2ec1a9 (June 2005).
  4. 24 Jun, 2015 1 commit
  5. 04 Jul, 2014 2 commits
  6. 03 Jul, 2014 1 commit
    • Behdad Esfahbod's avatar
      Change charset parse/unparse format to be human readable · e708e97c
      Behdad Esfahbod authored
      Previous format was unusable.  New format is ranges of hex values.
      To choose space character and Latin capital letters for example:
      $ fc-pattern ':charset=20 41-5a'
      Pattern has 1 elts (size 16)
      	0000: 00000000 00000001 07fffffe 00000000 00000000 00000000 00000000 00000000
  7. 13 May, 2014 1 commit
  8. 02 Jan, 2013 1 commit
  9. 30 Dec, 2012 2 commits
  10. 07 Mar, 2012 1 commit
  11. 10 Nov, 2010 1 commit
  12. 21 Sep, 2010 1 commit
  13. 12 Apr, 2010 1 commit
  14. 18 Nov, 2009 1 commit
    • Behdad Esfahbod's avatar
      Remove bogus comment · 77f4e60a
      Behdad Esfahbod authored
      Last night in between my dreams I also noticed that we support Unicode
      values up to 0x01000000 and not 0x00100000 which I thought before.
      This covers the entire Unicode range.
  15. 24 Jun, 2009 3 commits
  16. 13 Mar, 2009 1 commit
  17. 15 Feb, 2009 1 commit
    • Karl Tomlinson's avatar
      Change FcCharSetMerge API · 575ee6cd
      Karl Tomlinson authored
      To only work on writable charsets.  Also, return a bool indicating whether
      the merge changed the charset.
      Also changes the implementation of FcCharSetMerge and FcCharSetIsSubset
  18. 14 Feb, 2009 4 commits
    • Behdad Esfahbod's avatar
      Don't use FcCharSetCopy in FcCharSetMerge · 25a09eb9
      Behdad Esfahbod authored
      The Copy function is actually a ref, not real copy.
    • Behdad Esfahbod's avatar
    • Chris Wilson's avatar
      Reduce number of allocations during FcSortWalk(). · 311da231
      Chris Wilson authored
      The current behaviour of FcSortWalk() is to create a new FcCharSet on
      each iteration that is the union of the previous iteration with the next
      FcCharSet in the font set. This causes the existing FcCharSet to be
      reproduced in its entirety and then allocates fresh leaves for the new
      FcCharSet. In essence the number of allocations is quadratic wrt the
      number of fonts required.
      By introducing a new method for merging a new FcCharSet with an existing
      one we can change the behaviour to be effectively linear with the number
      of fonts - allocating no more leaves than necessary to cover all the
      fonts in the set.
      For example, profiling 'gedit UTF-8-demo.txt'
          Allocator		    nAllocs	    nBytes
          FcCharSetFindLeafCreate 62886	    2012352
          FcCharSetPutLeaf        9361	    11441108
          FcCharSetFindLeafCreate 1940	    62080
          FcCharSetPutLeaf        281		    190336
      The savings are even more significant for applications like firefox-3.0b5
      which need to switch between large number of fonts.
          FcCharSetFindLeafCreate 4461192	    142758144
          FcCharSetPutLeaf	    1124536	    451574172
          FcCharSetFindLeafCreate 80359	    2571488
          FcCharSetPutLeaf	    18940	    9720522
      Out of interest, the next most frequent allocations are
          FcPatternObjectAddWithBinding 526029    10520580
          tt_face_load_eblc	    42103	    2529892
    • Behdad Esfahbod's avatar
      Replace RCS Id tags with the file name · 317b8492
      Behdad Esfahbod authored
  19. 04 May, 2008 1 commit
  20. 07 Sep, 2006 1 commit
  21. 05 Sep, 2006 2 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
    • 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.
  22. 04 Sep, 2006 1 commit
    • Keith Packard's avatar
      Hide private functions in shared library. Export functionality for utilities. · 4984242e
      Keith Packard authored
      Borrowing header stuff written for cairo, fontconfig now exposes in the
      shared library only the symbols which are included in the public header
      files. All private symbols are hidden using suitable compiler directives.
      A few new public functions were required for the fontconfig utility programs
      (fc-cat and fc-cache) so those were added, bumping the .so minor version number
      in the process.
  23. 01 Sep, 2006 2 commits
  24. 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.
  25. 30 Aug, 2006 2 commits
    • Keith Packard's avatar
      FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work. · c0288648
      Keith Packard authored
      FcCharSetSerialize was computing the offset to the unserialized leaf,
      which left it pointing at random data when the cache was reloaded.
      fc-cat has been updated to work with the new cache structure.
      Various debug messages extended to help diagnose serialization errors.
    • 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.
  26. 25 Apr, 2006 1 commit
  27. 11 Apr, 2006 2 commits
    • 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
    • Patrick Lam's avatar
      Properly convert static charsets to dynamic charsets. · 04f7d3e7
      Patrick Lam authored
      Fix memory leak in error case (Coverity defects #1820, #1821, #1822).
      Fix memory leak (Coverity defect #1819).
      prevent crash when invalid include line is parsed (Coverity defect #763).
      Fix potential null pointer access (Coverity defect #1804).
      Remove dead code (Coverity defect #1194).
      Prevent potential null pointer access (Coverity defect #767), ensure error
          value is read (Coverity defect #1195).
      reviewed by: plam
  28. 07 Apr, 2006 1 commit
  29. 09 Feb, 2006 1 commit