38 #define FT_COMPONENT trace_gxvmort
41 typedef struct GXV_mort_subtable_type1_StateOptRec_
49 #define GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE \
50 ( GXV_STATETABLE_HEADER_SIZE + 2 )
90 o[3] = optdata->substitutionTable;
91 l[0] = classTable_length_p;
92 l[1] = stateArray_length_p;
93 l[2] = entryTable_length_p;
94 l[3] = &( optdata->substitutionTable_length );
142 #ifdef GXV_LOAD_UNUSED_VARS
154 #ifdef GXV_LOAD_UNUSED_VARS
156 dontAdvance = (
FT_UShort)( ( flags >> 14 ) & 1 );
158 reserved = (
FT_Short)( flags & 0x3FFF );
160 markOffset = (
FT_Short)( glyphOffset_p->
ul >> 16 );
161 currentOffset = (
FT_Short)( glyphOffset_p->
ul );
165 GXV_TRACE((
" non-zero bits found in reserved range\n" ));
194 for ( i = 0; i < num_gids ; i ++ )
202 if ( dst_gid >= 0xFFFFU )
205 if ( dst_gid < valid->min_gid || valid->
max_gid < dst_gid )
207 GXV_TRACE((
"substTable include a strange gid[%d]=%d >"
208 " out of define range (%d..%d)\n",
233 GXV_NAME_ENTER(
"mort chain subtable type1 (Contextual Glyph Subst)" );
237 valid->statetable.optdata =
239 valid->statetable.optdata_load_func =
241 valid->statetable.subtable_setup_func =
243 valid->statetable.entry_glyphoffset_fmt =
245 valid->statetable.entry_validate_func =
251 table + st_rec.substitutionTable,
252 table + st_rec.substitutionTable + st_rec.substitutionTable_length,
GLenum GLsizei GLenum GLenum const GLvoid * table
struct GXV_mort_subtable_type1_StateOptRec_ * GXV_mort_subtable_type1_StateOptRecData
#define GXV_NAME_ENTER(name)
static void gxv_mort_subtable_type1_substTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
#define GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE
struct GXV_mort_subtable_type1_StateOptRec_ GXV_mort_subtable_type1_StateOptRec
#define GXV_SET_ERR_IF_PARANOID(err)
GXV_StateTable_ValidatorRec statetable
gxv_mort_subtable_type1_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
static void gxv_mort_subtable_type1_entry_validate(FT_Byte state, FT_UShort flags, GXV_StateTable_GlyphOffsetCPtr glyphOffset_p, FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
static void gxv_mort_subtable_type1_offset_to_subst_validate(FT_Short wordOffset, const FT_String *tag, FT_Byte state, GXV_Validator valid)
static void gxv_mort_subtable_type1_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)
#define FT_NEXT_USHORT(buffer)
GLenum GLsizei GLsizei GLsizei GLsizei GLbitfield flags
gxv_set_length_by_ushort_offset(FT_UShort *offset, FT_UShort **length, FT_UShort *buff, FT_UInt nmemb, FT_UShort limit, GXV_Validator valid)
#define FT_INVALID_GLYPH_ID
static void gxv_mort_subtable_type1_substitutionTable_load(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
gxv_StateTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
#define GXV_LIMIT_CHECK(_count)