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 ) { #ifdef GXV_LOAD_UNUSED_VARS FT_UShort setMark; FT_UShort dontAdvance; #endif FT_UShort reserved; FT_Short markOffset; FT_Short currentOffset; FT_UNUSED( table ); FT_UNUSED( limit ); #ifdef GXV_LOAD_UNUSED_VARS setMark = (FT_UShort)( flags >> 15 ); dontAdvance = (FT_UShort)( ( flags >> 14 ) & 1 ); #endif reserved = (FT_Short)( flags & 0x3FFF ); markOffset = (FT_Short)( glyphOffset_p->ul >> 16 ); currentOffset = (FT_Short)( glyphOffset_p->ul ); if ( 0 < reserved ) { GXV_TRACE(( " non-zero bits found in reserved range\n" )); GXV_SET_ERR_IF_PARANOID( FT_INVALID_DATA ); } gxv_mort_subtable_type1_offset_to_subst_validate( markOffset, "markOffset", state, valid ); gxv_mort_subtable_type1_offset_to_subst_validate( currentOffset, "currentOffset", state, valid ); }
static void gxv_mort_subtable_type1_entry_validate( FT_Byte state, FT_UShort flags, GXV_StateTable_GlyphOffsetDesc glyphOffset, FT_Bytes table, FT_Bytes limit, GXV_Validator valid ) { FT_UShort setMark; FT_UShort dontAdvance; FT_UShort reserved; FT_Short markOffset; FT_Short currentOffset; FT_UNUSED( table ); FT_UNUSED( limit ); setMark = (FT_UShort)( flags >> 15 ); dontAdvance = (FT_UShort)( ( flags >> 14 ) & 1 ); reserved = (FT_Short)( flags & 0x3FFF ); markOffset = (FT_Short)( glyphOffset.ul >> 16 ); currentOffset = (FT_Short)( glyphOffset.ul ); if ( 0 < reserved ) { GXV_TRACE(( " non-zero bits found in reserved range\n" )); if ( valid->root->level >= FT_VALIDATE_PARANOID ) FT_INVALID_DATA; } gxv_mort_subtable_type1_offset_to_subst_validate( markOffset, "markOffset", state, valid ); gxv_mort_subtable_type1_offset_to_subst_validate( currentOffset, "currentOffset", state, valid ); }