summaryrefslogtreecommitdiff
path: root/src/fcfs.c
AgeCommit message (Collapse)AuthorFilesLines
2013-12-20Improve the performance issue on rescanning directoriesAkira TAGOH1-0/+22
2012-12-29Remove memory accounting and reportingBehdad Esfahbod1-8/+0
That belongs in tools like cairo/util/malloc-stat.so
2010-11-10Cleanup copyright notices to replace "Keith Packard" with "the author(s)"Behdad Esfahbod1-2/+2
2010-04-12Remove all training whitespacesBehdad Esfahbod1-3/+3
2009-03-13Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all filesBehdad Esfahbod1-2/+2
2009-02-13Replace RCS Id tags with the file nameBehdad Esfahbod1-1/+1
2006-09-05Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven)Keith Packard1-0/+3
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
2006-08-30Rework cache files to use offsets for all data structures.Keith Packard1-99/+34
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.
2006-04-25Include $(top_srcdir), $(top_srcdir)/src before anything else.Patrick Lam1-1/+1
Shuffle order of includes for building out of srcdir on win32. reviewed by: plam
2006-04-07Portability fixes for HP-UX (reported by Christoph Bauer). ReplacePatrick Lam1-1/+1
'__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by 'fc_alignof'. reviewed by: plam
2006-03-03Get rid of C++-style comments.Patrick Lam1-4/+4
2006-02-06Explain apples/oranges comparison and fix compilation error.Patrick Lam1-1/+4
reviewed by: plam
2006-02-06Insert check for integer overflow in # of fonts.Patrick Lam1-1/+1
reviewed by: plam
2006-02-04Gracefully handle the case where a cache asserts that it has a negativePatrick Lam1-14/+15
number of fonts, causing overflow. reviewed by: plam
2005-11-25Pass around FcCache *s to the Unserialize functions for extra consistencyPatrick Lam1-1/+1
(and less overhead, for what that's worth).
2005-11-17Don't add current_arch_start more than once.Patrick Lam1-1/+9
Fix ordering of ALIGN with respect to saving block_ptr; add another ALIGN to fcfs.c. reviewed by: plam
2005-11-16Add *NeededBytesAlign(), which overestimates the padding which is laterPatrick Lam1-0/+10
added by the new ALIGN macro. Fix alignment problems on ia64 and s390 by bumping up block_ptr appropriately. (Earlier version by Andreas Schwab). Use sysconf to determine proper PAGESIZE value; this appears to be POSIX-compliant. (reported by Andreas Schwab) reviewed by: plam
2005-08-31Only load requested fonts for fc-cache, and cleanup memory handling:Patrick Lam1-3/+0
*Serialize no longer mutates original FcPatterns, it creates a new copy in the supplied buffer. Fix thinkos in global cache freeing and in FcCacheSkipToArch.
2005-08-27Replace FcObjectStaticName by FcStrStaticName. Implement serialization ofPatrick Lam1-4/+7
'object' table (strings pointed to by FcPatternElt->object and used as keys) and loading of object table from cache file if more strings are present in cache file than in current version of fontconfig. Hash the object table in memory.
2005-08-24Overhaul the serialization system to create one mmapable file per directoryPatrick Lam1-96/+58
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.
2005-07-25#ifdef out old cache stuff, replace with first version of new mmappingPatrick Lam1-0/+95
cache. Add *Read and *Write procedures which mmap in and write out the fontconfig data structures to disk. Currently, create cache in /tmp, with different sections for each architecture (as returned by uname's .machine field. Run the fc-cache binary to create a new cache file; fontconfig then uses this cache file on subsequent runs, saving lots of memory. Also fixes a few bugs and leaks.
2005-06-28Add functionality to allow fontconfig data structure serialization.Patrick Lam1-0/+36
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.
2004-12-07Change files from ISO-Latin-1 to UTF-8Keith Packard1-1/+1
2003-03-05Change RCS tagKeith Packard1-2/+2
2002-02-14Initial revisionKeith Packard1-0/+82