[Fontconfig] Cache version bump plus new version
Behdad Esfahbod
behdad at behdad.org
Mon Nov 16 15:37:00 PST 2009
Hi,
Previously FcLangSet was defined as:
struct _FcLangSet {
FcChar32 map[NUM_LANG_SET_MAP];
FcStrSet *extra;
};
Which meant that if enough new .orth files are added to change the value of
NUM_LANG_SET_MAP, that struct changes layout, and the cache layout will
change. This is indeed what happened between 2.6.0 and 2.7.x and was causing
crashes since *extra was getting bogus values and then redirected.
To fix that I've restructured the structure to:
struct _FcLangSet {
FcStrSet *extra;
FcChar32 map_size;
FcChar32 map[NUM_LANG_SET_MAP];
};
and changed the code to respect map_size. As a result I've bumped the cache
version from 2 to 3. This is pushed to master.
I plan to release this as 2.8.0. Will appreciate some testing in the mean
while though. I may make a 2.7.90 snapshot later tonight or tomorrow. Or may
release 2.8.0 straight.
behdad
More information about the Fontconfig
mailing list