mmaping FcInit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Keith Packard wrote:
> Around 1 o'clock on Mar 21, Patrick Lam wrote:
> 
> 
>>In short, I think that one would need to replace pointers with array 
>>indices; to do otherwise seems to be asking for trouble.  I've started a 
>>patch that does this; my current patch is available at
> 
> 
> Yes, of course the structures need to be address independent.  I was 
> thinking that at the same time we'd also investigate changing the search 
> algorithm and data structure to reduce the cost of searching and matching 
> fonts.
> 
> Right now, the cost of pattern matching scales linearaly with the number of
> fonts, when you have thousands of fonts, this isn't acceptable.

I agree.  It seems that these things can be done independently, though, 
and since I have little domain knowledge of fontconfig, I could probably 
contribute most effectively to making things address-independent (which 
is progressing slowly, but surely, in my spare time -- I hope to have a 
patch ready in the near future.)

These current changes don't seem to yet require a change to the cache 
format; that would come later.

BTW, Owen's suggested struct:
struct FcPattern {
    int refcount;
    FcPatternStorage storage; /* dynamic, static */

    union {
      FcPatternDynamic *dynamic;
      FcPatternStatic *static;
    } u;
  };

still seems to be a struct, and thus requiring mallocness and a pointer. 
    My current patch allocates all FcPatterns in an array, which is 
probably all right for FcPatterns, but not all right for FcValueLists. 
Is there some safe way to use such a struct without having to malloc it? 
  I don't think there is.

pat

[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux