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).
      c37eeb8f
  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)
      	charset:
      	0000: 00000000 00000001 07fffffe 00000000 00000000 00000000 00000000 00000000
      (s)
      e708e97c
  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.
      77f4e60a
  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
      575ee6cd
  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.
      25a09eb9
    • Behdad Esfahbod's avatar
      350dc5f3
    • 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
      Before:
          FcCharSetFindLeafCreate 62886	    2012352
          FcCharSetPutLeaf        9361	    11441108
      After:
          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.
      Before:
          FcCharSetFindLeafCreate 4461192	    142758144
          FcCharSetPutLeaf	    1124536	    451574172
      After:
          FcCharSetFindLeafCreate 80359	    2571488
          FcCharSetPutLeaf	    18940	    9720522
      
      Out of interest, the next most frequent allocations are
          FcPatternObjectAddWithBinding 526029    10520580
          tt_face_load_eblc	    42103	    2529892
      311da231
    • Behdad Esfahbod's avatar
      Replace RCS Id tags with the file name · 317b8492
      Behdad Esfahbod authored
      317b8492
  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
      23816bf9
    • 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
  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.
      4984242e
  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.
      2d3387fd
  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.
      c0288648
    • 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
  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
      2de24638
    • 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
      04f7d3e7
  28. 07 Apr, 2006 1 commit
  29. 09 Feb, 2006 1 commit