#include "gxvcommn.h"
Go to the source code of this file.
#define FT_COMPONENT trace_gxvcommon |
Definition at line 38 of file gxvcommn.c.
#define GXV_LOOKUP_VALUE_LOAD | ( | P, | |||
SIGNSPEC | ) | ( P += 2, gxv_lookup_value_load( P - 2, SIGNSPEC ) ) |
Definition at line 384 of file gxvcommn.c.
Referenced by gxv_LookupTable_fmt0_validate(), gxv_LookupTable_fmt2_validate(), gxv_LookupTable_fmt4_validate(), gxv_LookupTable_fmt6_validate(), and gxv_LookupTable_fmt8_validate().
#define GXV_UNITSIZE_VALIDATE | ( | FORMAT, | |||
UNITSIZE, | |||||
NUNITS, | |||||
CORRECTSIZE | ) |
Value:
FT_BEGIN_STMNT \ if ( UNITSIZE != CORRECTSIZE ) \ { \ FT_ERROR(( "unitSize=%d differs from" \ " expected unitSize=%d" \ " in LookupTable %s\n", \ UNITSIZE, CORRECTSIZE, FORMAT )); \ if ( UNITSIZE != 0 && NUNITS != 0 ) \ { \ FT_ERROR(( " cannot validate anymore\n" )); \ FT_INVALID_FORMAT; \ } \ else \ FT_ERROR(( " forcibly continues\n" )); \ } \ FT_END_STMNT
Definition at line 403 of file gxvcommn.c.
Referenced by gxv_LookupTable_fmt2_validate(), gxv_LookupTable_fmt4_validate(), and gxv_LookupTable_fmt6_validate().
typedef struct GXV_BinSrchHeader_ GXV_BinSrchHeader |
gxv_array_getlimits_byte | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
FT_Byte * | min, | |||
FT_Byte * | max, | |||
GXV_Validator | valid | |||
) |
Definition at line 181 of file gxvcommn.c.
References FT_MAX, FT_MIN, FT_NEXT_BYTE, GXV_LIMIT_CHECK, p, and val.
Referenced by gxv_kern_subtable_fmt3_validate().
gxv_array_getlimits_ushort | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
FT_UShort * | min, | |||
FT_UShort * | max, | |||
GXV_Validator | valid | |||
) |
Definition at line 210 of file gxvcommn.c.
References FT_MAX, FT_MIN, FT_NEXT_USHORT, GXV_LIMIT_CHECK, p, and val.
Referenced by gxv_kern_subtable_fmt2_clstbl_validate().
static void gxv_BinSrchHeader_check_consistency | ( | GXV_BinSrchHeader * | binSrchHeader, | |
GXV_Validator | valid | |||
) | [static] |
Definition at line 258 of file gxvcommn.c.
References GXV_BinSrchHeader_::entrySelector, FT_INVALID_DATA, FT_VALIDATE_PARANOID, GXV_TRACE, GXV_BinSrchHeader_::nUnits, GXV_BinSrchHeader_::rangeShift, GXV_BinSrchHeader_::searchRange, and GXV_BinSrchHeader_::unitSize.
Referenced by gxv_BinSrchHeader_validate().
gxv_BinSrchHeader_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
FT_UShort * | unitSize_p, | |||
FT_UShort * | nUnits_p, | |||
GXV_Validator | valid | |||
) |
Definition at line 329 of file gxvcommn.c.
References GXV_BinSrchHeader_::entrySelector, FT_NEXT_USHORT, gxv_BinSrchHeader_check_consistency(), GXV_EXIT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, GXV_BinSrchHeader_::nUnits, p, GXV_BinSrchHeader_::rangeShift, GXV_BinSrchHeader_::searchRange, and GXV_BinSrchHeader_::unitSize.
Referenced by gxv_kern_subtable_fmt0_validate(), gxv_LookupTable_fmt2_validate(), gxv_LookupTable_fmt4_validate(), and gxv_LookupTable_fmt6_validate().
static void gxv_ClassTable_validate | ( | FT_Bytes | table, | |
FT_UShort * | length_p, | |||
FT_UShort | stateSize, | |||
FT_Byte * | maxClassID_p, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 951 of file gxvcommn.c.
References FT_INVALID_DATA, ft_memset, FT_NEXT_BYTE, FT_NEXT_USHORT, GXV_EXIT, gxv_glyphid_validate(), GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, i, and p.
Referenced by gxv_StateTable_validate().
gxv_ctlPoint_validate | ( | FT_UShort | gid, | |
FT_Short | ctl_point, | |||
GXV_Validator | valid | |||
) |
Definition at line 854 of file gxvcommn.c.
References error, FT_INVALID_DATA, FT_INVALID_GLYPH_ID, FT_Load_Glyph(), FT_LOAD_IGNORE_TRANSFORM, FT_LOAD_NO_BITMAP, FT_Outline_::n_points, and FT_GlyphSlotRec_::outline.
Referenced by gxv_bsln_parts_fmt2_validate(), gxv_lcar_partial_validate(), and gxv_opbd_LookupValue_validate().
static void gxv_EntryTable_validate | ( | FT_Bytes | table, | |
FT_UShort * | length_p, | |||
FT_Byte | maxEntry, | |||
FT_UShort | stateArray, | |||
FT_UShort | stateArray_length, | |||
FT_Byte | maxClassID, | |||
FT_Bytes | statetable_table, | |||
FT_Bytes | statetable_limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1079 of file gxvcommn.c.
References GXV_StateTable_GlyphOffsetDesc_::c, entry, flags, FT_INVALID_FORMAT, FT_INVALID_OFFSET, FT_INVALID_TOO_SHORT, FT_NEXT_BYTE, FT_NEXT_CHAR, FT_NEXT_LONG, FT_NEXT_SHORT, FT_NEXT_ULONG, FT_NEXT_USHORT, FT_VALIDATE_PARANOID, GXV_EXIT, GXV_GLYPHOFFSET_CHAR, GXV_GLYPHOFFSET_FMT, GXV_GLYPHOFFSET_LONG, GXV_GLYPHOFFSET_NONE, GXV_GLYPHOFFSET_SHORT, GXV_GLYPHOFFSET_SIZE, GXV_GLYPHOFFSET_UCHAR, GXV_GLYPHOFFSET_ULONG, GXV_GLYPHOFFSET_USHORT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, GXV_StateTable_GlyphOffsetDesc_::l, NULL, p, GXV_StateTable_GlyphOffsetDesc_::s, GXV_StateTable_GlyphOffsetDesc_::u, GXV_StateTable_GlyphOffsetDesc_::uc, and GXV_StateTable_GlyphOffsetDesc_::ul.
Referenced by gxv_StateTable_validate().
gxv_glyphid_validate | ( | FT_UShort | gid, | |
GXV_Validator | valid | |||
) |
Definition at line 820 of file gxvcommn.c.
References FT_INVALID_GLYPH_ID, FT_VALIDATE_PARANOID, GXV_EXIT, and GXV_TRACE.
Referenced by gxv_bsln_parts_fmt2_validate(), gxv_ClassTable_validate(), gxv_kern_subtable_fmt0_pairs_validate(), gxv_kern_subtable_fmt2_clstbl_validate(), gxv_LookupTable_fmt2_validate(), gxv_LookupTable_fmt4_validate(), gxv_LookupTable_fmt6_validate(), gxv_LookupTable_fmt8_validate(), gxv_mort_subtable_type4_lookupval_validate(), and gxv_prop_property_validate().
static GXV_LookupValueDesc gxv_lookup_value_load | ( | FT_Bytes | p, | |
int | signspec | |||
) | [static] |
Definition at line 388 of file gxvcommn.c.
References FT_NEXT_SHORT, FT_NEXT_USHORT, and GXV_LOOKUPVALUE_UNSIGNED.
static void gxv_LookupTable_fmt0_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 424 of file gxvcommn.c.
References FT_INVALID_GLYPH_ID, FT_VALIDATE_PARANOID, GXV_EXIT, GXV_LIMIT_CHECK, GXV_LOOKUP_VALUE_LOAD, GXV_NAME_ENTER, GXV_TRACE, i, if(), p, and value.
Referenced by gxv_LookupTable_validate().
static void gxv_LookupTable_fmt2_skip_endmarkers | ( | FT_Bytes | table, | |
FT_UShort | unitSize, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 476 of file gxvcommn.c.
References p.
Referenced by gxv_LookupTable_fmt2_validate(), and gxv_LookupTable_fmt4_validate().
static void gxv_LookupTable_fmt2_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 496 of file gxvcommn.c.
References FT_INVALID_GLYPH_ID, FT_NEXT_USHORT, FT_TRACE4, FT_VALIDATE_PARANOID, FT_VALIDATE_TIGHT, gxv_BinSrchHeader_validate(), GXV_EXIT, gxv_glyphid_validate(), GXV_LIMIT_CHECK, GXV_LOOKUP_VALUE_LOAD, gxv_LookupTable_fmt2_skip_endmarkers(), GXV_NAME_ENTER, GXV_TRACE, GXV_UNITSIZE_VALIDATE, p, unit, and value.
Referenced by gxv_LookupTable_validate().
static void gxv_LookupTable_fmt4_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 569 of file gxvcommn.c.
References FT_INVALID_GLYPH_ID, FT_NEXT_USHORT, FT_TRACE4, FT_VALIDATE_PARANOID, FT_VALIDATE_TIGHT, gxv_BinSrchHeader_validate(), GXV_EXIT, gxv_glyphid_validate(), GXV_LIMIT_CHECK, GXV_LOOKUP_VALUE_LOAD, gxv_LookupTable_fmt2_skip_endmarkers(), GXV_LOOKUPVALUE_UNSIGNED, GXV_NAME_ENTER, GXV_TRACE, GXV_UNITSIZE_VALIDATE, p, unit, and value.
Referenced by gxv_LookupTable_validate().
static void gxv_LookupTable_fmt6_skip_endmarkers | ( | FT_Bytes | table, | |
FT_UShort | unitSize, | |||
GXV_Validator | valid | |||
) | [static] |
static void gxv_LookupTable_fmt6_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 671 of file gxvcommn.c.
References FT_INVALID_GLYPH_ID, FT_NEXT_USHORT, FT_VALIDATE_PARANOID, gxv_BinSrchHeader_validate(), GXV_EXIT, gxv_glyphid_validate(), GXV_LIMIT_CHECK, GXV_LOOKUP_VALUE_LOAD, gxv_LookupTable_fmt6_skip_endmarkers(), GXV_NAME_ENTER, GXV_TRACE, GXV_UNITSIZE_VALIDATE, p, unit, and value.
Referenced by gxv_LookupTable_validate().
static void gxv_LookupTable_fmt8_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 726 of file gxvcommn.c.
References FT_NEXT_USHORT, GXV_EXIT, gxv_glyphid_validate(), GXV_LIMIT_CHECK, GXV_LOOKUP_VALUE_LOAD, GXV_NAME_ENTER, i, p, and value.
Referenced by gxv_LookupTable_validate().
gxv_LookupTable_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) |
Definition at line 762 of file gxvcommn.c.
References FT_INVALID_FORMAT, FT_NEXT_USHORT, func(), GXV_EXIT, GXV_LIMIT_CHECK, gxv_LookupTable_fmt0_validate(), gxv_LookupTable_fmt2_validate(), gxv_LookupTable_fmt4_validate(), gxv_LookupTable_fmt6_validate(), gxv_LookupTable_fmt8_validate(), GXV_NAME_ENTER, GXV_TRACE, NULL, and p.
Referenced by gxv_bsln_parts_fmt1_validate(), gxv_bsln_parts_fmt3_validate(), gxv_just_justData_lookuptable_validate(), gxv_just_pcLookupTable_validate(), gxv_lcar_validate(), gxv_mort_subtable_type4_validate(), gxv_morx_subtable_type1_substitutionTable_validate(), gxv_opbd_validate(), gxv_prop_validate(), and gxv_XStateTable_validate().
gxv_odtect_add_range | ( | FT_Bytes | start, | |
FT_ULong | length, | |||
const FT_String * | name, | |||
GXV_odtect_Range | odtect | |||
) |
Definition at line 1717 of file gxvcommn.c.
Referenced by gxv_just_justData_validate(), gxv_just_validate(), gxv_kern_subtable_fmt2_clstbl_validate(), gxv_kern_subtable_fmt2_validate(), gxv_trak_trackData_validate(), and gxv_trak_validate().
gxv_odtect_validate | ( | GXV_odtect_Range | odtect, | |
GXV_Validator | valid | |||
) |
Definition at line 1730 of file gxvcommn.c.
References FT_INVALID_OFFSET, gxv_compare_ranges(), GXV_NAME_ENTER, GXV_TRACE, i, if(), and j.
Referenced by gxv_just_justData_validate(), gxv_just_validate(), gxv_kern_subtable_fmt2_validate(), gxv_trak_trackData_validate(), and gxv_trak_validate().
gxv_set_length_by_ulong_offset | ( | FT_ULong * | offset, | |
FT_ULong ** | length, | |||
FT_ULong * | buff, | |||
FT_UInt | nmemb, | |||
FT_ULong | limit, | |||
GXV_Validator | valid | |||
) |
Definition at line 128 of file gxvcommn.c.
References FT_INVALID_OFFSET, ft_qsort, gxv_compare_ulong_offset(), i, and j.
Referenced by gxv_morx_subtable_type1_subtable_setup(), gxv_morx_subtable_type2_subtable_setup(), gxv_morx_subtable_type5_subtable_setup(), and gxv_XStateTable_subtable_setup().
gxv_set_length_by_ushort_offset | ( | FT_UShort * | offset, | |
FT_UShort ** | length, | |||
FT_UShort * | buff, | |||
FT_UInt | nmemb, | |||
FT_UShort | limit, | |||
GXV_Validator | valid | |||
) |
Definition at line 63 of file gxvcommn.c.
References FT_INVALID_OFFSET, ft_qsort, gxv_compare_ushort_offset(), i, and j.
Referenced by gxv_kern_subtable_fmt1_subtable_setup(), gxv_mort_subtable_type1_subtable_setup(), gxv_mort_subtable_type2_subtable_setup(), and gxv_StateTable_subtable_setup().
gxv_sfntName_validate | ( | FT_UShort | name_index, | |
FT_UShort | min_index, | |||
FT_UShort | max_index, | |||
GXV_Validator | valid | |||
) |
Definition at line 893 of file gxvcommn.c.
References FT_Get_Sfnt_Name(), FT_Get_Sfnt_Name_Count(), FT_INVALID_DATA, FT_INVALID_FORMAT, FT_TRACE1, GXV_EXIT, GXV_NAME_ENTER, GXV_TRACE, GXV_TRACE_HEXDUMP_SFNTNAME, i, if(), and name.
Referenced by gxv_feat_name_index_validate(), and gxv_trak_trackTable_validate().
static void gxv_StateArray_validate | ( | FT_Bytes | table, | |
FT_UShort * | length_p, | |||
FT_Byte | maxClassID, | |||
FT_UShort | stateSize, | |||
FT_Byte * | maxState_p, | |||
FT_Byte * | maxEntry_p, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1027 of file gxvcommn.c.
References entry, FT_MAX, FT_NEXT_BYTE, FT_UNUSED, GXV_EXIT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, and p.
Referenced by gxv_StateTable_validate().
gxv_StateTable_subtable_setup | ( | FT_UShort | table_size, | |
FT_UShort | classTable, | |||
FT_UShort | stateArray, | |||
FT_UShort | entryTable, | |||
FT_UShort * | classTable_length_p, | |||
FT_UShort * | stateArray_length_p, | |||
FT_UShort * | entryTable_length_p, | |||
GXV_Validator | valid | |||
) |
Definition at line 1200 of file gxvcommn.c.
References gxv_set_length_by_ushort_offset(), l, and o.
Referenced by gxv_mort_subtable_type5_subtable_setup(), and gxv_StateTable_validate().
gxv_StateTable_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) |
Definition at line 1226 of file gxvcommn.c.
References FT_INVALID_DATA, FT_INVALID_OFFSET, FT_NEXT_USHORT, gxv_ClassTable_validate(), gxv_EntryTable_validate(), GXV_EXIT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, gxv_StateArray_validate(), gxv_StateTable_subtable_setup(), GXV_TRACE, NULL, and p.
Referenced by gxv_just_justClassTable_validate(), gxv_kern_subtable_fmt1_validate(), gxv_mort_subtable_type0_validate(), gxv_mort_subtable_type1_validate(), gxv_mort_subtable_type2_validate(), and gxv_mort_subtable_type5_validate().
static GXV_LookupValueDesc gxv_XClassTable_lookupfmt4_transit | ( | FT_UShort | relative_gindex, | |
GXV_LookupValueCPtr | base_value_p, | |||
FT_Bytes | lookuptbl_limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1394 of file gxvcommn.c.
References FT_NEXT_USHORT, GXV_LIMIT_CHECK, p, sizeof(), GXV_LookupValueDesc_::u, and value.
Referenced by gxv_XStateTable_validate().
static void gxv_XClassTable_lookupval_validate | ( | FT_UShort | glyph, | |
GXV_LookupValueCPtr | value_p, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1354 of file gxvcommn.c.
References FT_INVALID_DATA, FT_UNUSED, and GXV_LookupValueDesc_::u.
Referenced by gxv_XStateTable_validate().
static void gxv_XEntryTable_validate | ( | FT_Bytes | table, | |
FT_ULong * | length_p, | |||
FT_UShort | maxEntry, | |||
FT_ULong | stateArray_length, | |||
FT_UShort | maxClassID, | |||
FT_Bytes | xstatetable_table, | |||
FT_Bytes | xstatetable_limit, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1469 of file gxvcommn.c.
References GXV_StateTable_GlyphOffsetDesc_::c, entry, flags, FT_INVALID_FORMAT, FT_INVALID_OFFSET, FT_INVALID_TOO_SHORT, FT_NEXT_BYTE, FT_NEXT_CHAR, FT_NEXT_LONG, FT_NEXT_SHORT, FT_NEXT_ULONG, FT_NEXT_USHORT, FT_TRACE4, FT_VALIDATE_PARANOID, GXV_EXIT, GXV_GLYPHOFFSET_CHAR, GXV_GLYPHOFFSET_FMT, GXV_GLYPHOFFSET_LONG, GXV_GLYPHOFFSET_NONE, GXV_GLYPHOFFSET_SHORT, GXV_GLYPHOFFSET_SIZE, GXV_GLYPHOFFSET_UCHAR, GXV_GLYPHOFFSET_ULONG, GXV_GLYPHOFFSET_USHORT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, GXV_StateTable_GlyphOffsetDesc_::l, NULL, p, GXV_StateTable_GlyphOffsetDesc_::s, GXV_StateTable_GlyphOffsetDesc_::u, GXV_StateTable_GlyphOffsetDesc_::uc, and GXV_StateTable_GlyphOffsetDesc_::ul.
Referenced by gxv_XStateTable_validate().
static void gxv_XStateArray_validate | ( | FT_Bytes | table, | |
FT_ULong * | length_p, | |||
FT_UShort | maxClassID, | |||
FT_ULong | stateSize, | |||
FT_UShort * | maxState_p, | |||
FT_UShort * | maxEntry_p, | |||
GXV_Validator | valid | |||
) | [static] |
Definition at line 1419 of file gxvcommn.c.
References entry, FT_MAX, FT_NEXT_USHORT, FT_UNUSED, GXV_EXIT, GXV_LIMIT_CHECK, GXV_NAME_ENTER, GXV_TRACE, and p.
Referenced by gxv_XStateTable_validate().
gxv_XStateTable_subtable_setup | ( | FT_ULong | table_size, | |
FT_ULong | classTable, | |||
FT_ULong | stateArray, | |||
FT_ULong | entryTable, | |||
FT_ULong * | classTable_length_p, | |||
FT_ULong * | stateArray_length_p, | |||
FT_ULong * | entryTable_length_p, | |||
GXV_Validator | valid | |||
) |
Definition at line 1328 of file gxvcommn.c.
References gxv_set_length_by_ulong_offset(), l, and o.
Referenced by gxv_XStateTable_validate().
gxv_XStateTable_validate | ( | FT_Bytes | table, | |
FT_Bytes | limit, | |||
GXV_Validator | valid | |||
) |
Definition at line 1573 of file gxvcommn.c.
References FT_INVALID_DATA, FT_INVALID_OFFSET, FT_NEXT_ULONG, GXV_EXIT, GXV_LIMIT_CHECK, gxv_LookupTable_validate(), GXV_LOOKUPVALUE_UNSIGNED, GXV_NAME_ENTER, GXV_TRACE, gxv_XClassTable_lookupfmt4_transit(), gxv_XClassTable_lookupval_validate(), gxv_XEntryTable_validate(), gxv_XStateArray_validate(), gxv_XStateTable_subtable_setup(), NULL, and p.
Referenced by gxv_morx_subtable_type0_validate(), gxv_morx_subtable_type1_validate(), gxv_morx_subtable_type2_validate(), and gxv_morx_subtable_type5_validate().