summaryrefslogtreecommitdiff
path: root/src/fcfs.c
Commit message (Collapse)AuthorAgeFilesLines
* Ignore null pointer on Fc*Destroy functionsAkira TAGOH2022-12-051-6/+9
| | | | Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/339
* Improve the performance issue on rescanning directoriesAkira TAGOH2013-12-201-0/+22
|
* Remove memory accounting and reportingBehdad Esfahbod2012-12-291-8/+0
| | | | That belongs in tools like cairo/util/malloc-stat.so
* Cleanup copyright notices to replace "Keith Packard" with "the author(s)"Behdad Esfahbod2010-11-101-2/+2
|
* Remove all training whitespacesBehdad Esfahbod2010-04-121-3/+3
|
* Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all filesBehdad Esfahbod2009-03-131-2/+2
|
* Replace RCS Id tags with the file nameBehdad Esfahbod2009-02-131-1/+1
|
* Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven)Keith Packard2006-09-051-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
* Rework cache files to use offsets for all data structures.Keith Packard2006-08-301-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.
* Include $(top_srcdir), $(top_srcdir)/src before anything else.Patrick Lam2006-04-251-1/+1
| | | | | Shuffle order of includes for building out of srcdir on win32. reviewed by: plam
* Portability fixes for HP-UX (reported by Christoph Bauer). ReplacePatrick Lam2006-04-071-1/+1
| | | | | | '__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by 'fc_alignof'. reviewed by: plam
* Get rid of C++-style comments.Patrick Lam2006-03-031-4/+4
|
* Explain apples/oranges comparison and fix compilation error.Patrick Lam2006-02-061-1/+4
| | | | reviewed by: plam
* Insert check for integer overflow in # of fonts.Patrick Lam2006-02-061-1/+1
| | | | reviewed by: plam
* Gracefully handle the case where a cache asserts that it has a negativePatrick Lam2006-02-041-14/+15
| | | | | number of fonts, causing overflow. reviewed by: plam
* Pass around FcCache *s to the Unserialize functions for extra consistencyPatrick Lam2005-11-251-1/+1
| | | | (and less overhead, for what that's worth).
* Don't add current_arch_start more than once.Patrick Lam2005-11-171-1/+9
| | | | | | Fix ordering of ALIGN with respect to saving block_ptr; add another ALIGN to fcfs.c. reviewed by: plam
* Add *NeededBytesAlign(), which overestimates the padding which is laterPatrick Lam2005-11-161-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
* Only load requested fonts for fc-cache, and cleanup memory handling:Patrick Lam2005-08-311-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.
* Replace FcObjectStaticName by FcStrStaticName. Implement serialization ofPatrick Lam2005-08-271-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.
* Overhaul the serialization system to create one mmapable file per directoryPatrick Lam2005-08-241-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.
* #ifdef out old cache stuff, replace with first version of new mmappingPatrick Lam2005-07-251-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.
* Add functionality to allow fontconfig data structure serialization.Patrick Lam2005-06-281-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.
* Change files from ISO-Latin-1 to UTF-8Keith Packard2004-12-071-1/+1
|
* Change RCS tagKeith Packard2003-03-051-2/+2
|
* Initial revisionKeith Packard2002-02-141-0/+82