1. 28 Jun, 2005 1 commit
    • Patrick Lam's avatar
      Add functionality to allow fontconfig data structure serialization. · cd2ec1a9
      Patrick Lam authored
      This patch allows the fundamental fontconfig data structures to be
          serialized. I've converted everything from FcPattern down to be able to
          use *Ptr objects, which can be either static or dynamic (using a union
          which either contains a pointer or an index) and replaced storage of
          pointers in the heap with the appropriate *Ptr object. I then changed
          all writes of pointers to the heap with a *CreateDynamic call, which
          creates a dynamic Ptr object pointing to the same object as before.
          This way, the fundamental fontconfig semantics should be unchanged; I
          did not have to change external signatures this way, although I did
          change some internal signatures. When given a *Ptr object, just run *U
          to get back to a normal pointer; it gives the right answer regardless
          of whether we're using static or dynamic storage.
      I've also implemented a Fc*Serialize call. Calling FcFontSetSerialize
          converts the dynamic FcFontSets contained in the config object to
          static FcFontSets and also converts its dependencies (e.g. everything
          you'd need to write to disk) to static objects. Note that you have to
          call Fc*PrepareSerialize first; this call will count the number of
          objects that actually needs to be allocated, so that we can avoid
          realloc. The Fc*Serialize calls then check the static pointers for
          nullness, and allocate the buffers if necessary. I've tested the
          execution of fc-list and fc-match after Fc*Serialize and they appear to
          work the same way.
      cd2ec1a9
  2. 07 Dec, 2004 1 commit
  3. 15 Aug, 2003 1 commit
  4. 24 Apr, 2003 1 commit
  5. 18 Mar, 2003 1 commit
  6. 05 Mar, 2003 1 commit
  7. 06 Feb, 2003 1 commit
  8. 31 Aug, 2002 1 commit
  9. 22 Aug, 2002 1 commit
  10. 13 Jul, 2002 1 commit
  11. 09 Jul, 2002 1 commit
  12. 06 Jul, 2002 1 commit
  13. 29 Jun, 2002 1 commit
  14. 26 Jun, 2002 1 commit
  15. 21 Jun, 2002 1 commit
  16. 31 May, 2002 2 commits
  17. 29 May, 2002 2 commits
  18. 24 May, 2002 1 commit
  19. 27 Mar, 2002 1 commit
  20. 03 Mar, 2002 1 commit
  21. 19 Feb, 2002 1 commit
  22. 18 Feb, 2002 1 commit
  23. 15 Feb, 2002 1 commit
  24. 14 Feb, 2002 1 commit