diff options
author | Keith Packard <keithp@neko.keithp.com> | 2006-08-30 04:16:22 -0700 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2006-08-30 04:16:22 -0700 |
commit | 7ce196733129b0e664c1bdc20f973f15167292f7 (patch) | |
tree | e63deabfdbe65246cf4ed53187e04e09a0027886 /src/fcdefault.c | |
parent | 2a9179d8895c1cc90d02917f7bb6fac30ffb6a62 (diff) | |
download | fontconfig-7ce196733129b0e664c1bdc20f973f15167292f7.tar.gz |
Rework cache files to use offsets for all data structures.
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.
Diffstat (limited to 'src/fcdefault.c')
-rw-r--r-- | src/fcdefault.c | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/src/fcdefault.c b/src/fcdefault.c index 4fd3ed8..b582310 100644 --- a/src/fcdefault.c +++ b/src/fcdefault.c @@ -26,14 +26,14 @@ #include <locale.h> static const struct { - const char *field; + FcObject field; FcBool value; } FcBoolDefaults[] = { - { FC_HINTING, FcTrue }, /* !FT_LOAD_NO_HINTING */ - { FC_VERTICAL_LAYOUT, FcFalse }, /* FC_LOAD_VERTICAL_LAYOUT */ - { FC_AUTOHINT, FcFalse }, /* FC_LOAD_FORCE_AUTOHINT */ - { FC_GLOBAL_ADVANCE, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */ - { FC_EMBEDDED_BITMAP, FcTrue }, /* !FC_LOAD_NO_BITMAP */ + { FC_HINTING_OBJECT, FcTrue }, /* !FT_LOAD_NO_HINTING */ + { FC_VERTICAL_LAYOUT_OBJECT, FcFalse }, /* FC_LOAD_VERTICAL_LAYOUT */ + { FC_AUTOHINT_OBJECT, FcFalse }, /* FC_LOAD_FORCE_AUTOHINT */ + { FC_GLOBAL_ADVANCE_OBJECT, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */ + { FC_EMBEDDED_BITMAP_OBJECT, FcTrue }, /* !FC_LOAD_NO_BITMAP */ }; #define NUM_FC_BOOL_DEFAULTS (int) (sizeof FcBoolDefaults / sizeof FcBoolDefaults[0]) @@ -105,63 +105,63 @@ FcDefaultSubstitute (FcPattern *pattern) FcValue v; int i; - if (FcPatternGet (pattern, FC_STYLE, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_STYLE_OBJECT, 0, &v) == FcResultNoMatch) { - if (FcPatternGet (pattern, FC_WEIGHT, 0, &v) == FcResultNoMatch ) + if (FcPatternObjectGet (pattern, FC_WEIGHT_OBJECT, 0, &v) == FcResultNoMatch ) { - FcPatternAddInteger (pattern, FC_WEIGHT, FC_WEIGHT_MEDIUM); + FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_MEDIUM); } - if (FcPatternGet (pattern, FC_SLANT, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_SLANT_OBJECT, 0, &v) == FcResultNoMatch) { - FcPatternAddInteger (pattern, FC_SLANT, FC_SLANT_ROMAN); + FcPatternObjectAddInteger (pattern, FC_SLANT_OBJECT, FC_SLANT_ROMAN); } } - if (FcPatternGet (pattern, FC_WIDTH, 0, &v) == FcResultNoMatch) - FcPatternAddInteger (pattern, FC_WIDTH, FC_WIDTH_NORMAL); + if (FcPatternObjectGet (pattern, FC_WIDTH_OBJECT, 0, &v) == FcResultNoMatch) + FcPatternObjectAddInteger (pattern, FC_WIDTH_OBJECT, FC_WIDTH_NORMAL); for (i = 0; i < NUM_FC_BOOL_DEFAULTS; i++) - if (FcPatternGet (pattern, FcBoolDefaults[i].field, 0, &v) == FcResultNoMatch) - FcPatternAddBool (pattern, FcBoolDefaults[i].field, FcBoolDefaults[i].value); + if (FcPatternObjectGet (pattern, FcBoolDefaults[i].field, 0, &v) == FcResultNoMatch) + FcPatternObjectAddBool (pattern, FcBoolDefaults[i].field, FcBoolDefaults[i].value); - if (FcPatternGet (pattern, FC_PIXEL_SIZE, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) == FcResultNoMatch) { double dpi, size, scale; - if (FcPatternGetDouble (pattern, FC_SIZE, 0, &size) != FcResultMatch) + if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch) { size = 12.0; - (void) FcPatternDel (pattern, FC_SIZE); - FcPatternAddDouble (pattern, FC_SIZE, size); + (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT); + FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size); } - if (FcPatternGetDouble (pattern, FC_SCALE, 0, &scale) != FcResultMatch) + if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch) { scale = 1.0; - (void) FcPatternDel (pattern, FC_SCALE); - FcPatternAddDouble (pattern, FC_SCALE, scale); + (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT); + FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale); } size *= scale; - if (FcPatternGetDouble (pattern, FC_DPI, 0, &dpi) != FcResultMatch) + if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch) { dpi = 75.0; - (void) FcPatternDel (pattern, FC_DPI); - FcPatternAddDouble (pattern, FC_DPI, dpi); + (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT); + FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi); } size *= dpi / 72.0; - FcPatternAddDouble (pattern, FC_PIXEL_SIZE, size); + FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, size); } - if (FcPatternGet (pattern, FC_LANG, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_LANG_OBJECT, 0, &v) == FcResultNoMatch) { - FcPatternAddString (pattern, FC_LANG, FcGetDefaultLang ()); + FcPatternObjectAddString (pattern, FC_LANG_OBJECT, FcGetDefaultLang ()); } - if (FcPatternGet (pattern, FC_FONTVERSION, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_FONTVERSION_OBJECT, 0, &v) == FcResultNoMatch) { - FcPatternAddInteger (pattern, FC_FONTVERSION, 0x7fffffff); + FcPatternObjectAddInteger (pattern, FC_FONTVERSION_OBJECT, 0x7fffffff); } - if (FcPatternGet (pattern, FC_HINT_STYLE, 0, &v) == FcResultNoMatch) + if (FcPatternObjectGet (pattern, FC_HINT_STYLE_OBJECT, 0, &v) == FcResultNoMatch) { - FcPatternAddInteger (pattern, FC_HINT_STYLE, FC_HINT_FULL); + FcPatternObjectAddInteger (pattern, FC_HINT_STYLE_OBJECT, FC_HINT_FULL); } } |