31#define FT_COMPONENT trace_otvgpos
51#define BaseArrayFunc otv_x_sxy
52#define LigatureAttachFunc otv_x_sxy
53#define Mark2ArrayFunc otv_x_sxy
79 for ( count1 = otvalid->extra1; count1 > 0; count1-- )
86 if ( otvalid->extra2 )
100#define MarkBasePosFormat1Func otv_u_O_O_u_O_O
101#define MarkLigPosFormat1Func otv_u_O_O_u_O_O
102#define MarkMarkPosFormat1Func otv_u_O_O_u_O_O
111 FT_UInt Coverage1, Coverage2, ClassCount;
132 otvalid->nesting_level++;
133 func = otvalid->func[otvalid->nesting_level];
134 otvalid->extra1 = ClassCount;
138 otvalid->nesting_level--;
176#ifdef FT_DEBUG_LEVEL_TRACE
184 for ( loop = 7; loop >= 0; loop-- )
255 OTV_TRACE((
" (format %d)\n", AnchorFormat ));
259 switch ( AnchorFormat )
321 OTV_TRACE((
" (MarkCount = %d)\n", MarkCount ));
326 for ( ; MarkCount > 0; MarkCount-- )
360 OTV_TRACE((
" (format %d)\n", PosFormat ));
362 otvalid->extra3 =
table;
382 FT_UInt Coverage, ValueFormat, ValueCount, len_value;
390 OTV_TRACE((
" (ValueCount = %d)\n", ValueCount ));
401 for ( ; ValueCount > 0; ValueCount-- )
434 FT_UInt value_len1, value_len2, PairValueCount;
439 otvalid->extra3 =
table;
444 OTV_TRACE((
" (PairValueCount = %d)\n", PairValueCount ));
452 for ( ; PairValueCount > 0; PairValueCount-- )
484 OTV_TRACE((
" (format %d)\n", PosFormat ));
490 FT_UInt Coverage, ValueFormat1, ValueFormat2, PairSetCount;
499 OTV_TRACE((
" (PairSetCount = %d)\n", PairSetCount ));
506 for ( ; PairSetCount > 0; PairSetCount-- )
508 ValueFormat1, ValueFormat2, otvalid );
514 FT_UInt Coverage, ValueFormat1, ValueFormat2, ClassDef1, ClassDef2;
515 FT_UInt ClassCount1, ClassCount2, len_value1, len_value2,
count;
527 OTV_TRACE((
" (ClassCount1 = %d)\n", ClassCount1 ));
528 OTV_TRACE((
" (ClassCount2 = %d)\n", ClassCount2 ));
538 ( len_value1 + len_value2 ) );
540 otvalid->extra3 =
table;
543 for ( ; ClassCount1 > 0; ClassCount1-- )
591 OTV_TRACE((
" (format %d)\n", PosFormat ));
598 FT_UInt Coverage, EntryExitCount;
608 OTV_TRACE((
" (EntryExitCount = %d)\n", EntryExitCount ));
619 for ( ; EntryExitCount > 0; EntryExitCount-- )
669 OTV_TRACE((
" (format %d)\n", PosFormat ));
710 OTV_TRACE((
" (format %d)\n", PosFormat ));
716 OTV_NEST3( MarkLigPosFormat1, LigatureArray, LigatureAttach );
751 OTV_TRACE((
" (format %d)\n", PosFormat ));
757 OTV_NEST2( MarkMarkPosFormat1, Mark2Array );
792 OTV_TRACE((
" (format %d)\n", PosFormat ));
801 otvalid->extra1 = otvalid->lookup_count;
802 OTV_NEST3( ContextPosFormat1, PosRuleSet, PosRule );
811 OTV_NEST3( ContextPosFormat2, PosClassSet, PosClassRule );
851 OTV_TRACE((
" (format %d)\n", PosFormat ));
860 otvalid->extra1 = otvalid->lookup_count;
862 ChainPosRuleSet, ChainPosRule );
872 ChainPosClassSet, ChainPosClassRule );
912 OTV_TRACE((
" (format %d)\n", PosFormat ));
927 if ( ExtensionLookupType == 0 || ExtensionLookupType >= 9 )
930 validate = otvalid->type_funcs[ExtensionLookupType - 1];
964 otvalid->type_count = 9;
996 otvalid->root = ftvalid;
998 FT_TRACE3((
"validating GPOS table\n" ));
1028 otvalid->type_count = 9;
1030 otvalid->glyph_count = glyph_count;
1043 if ( featureVariations )
1044 OTV_TRACE((
" [omitting featureVariations validation]\n" ));
static const WCHAR version[]
static FRESULT validate(void *obj)
#define FT_TRACE3(varformat)
#define FT_TRACE4(varformat)
#define FT_NEXT_USHORT(buffer)
#define FT_NEXT_ULONG(buffer)
#define FT_INVALID_FORMAT
typedefFT_BEGIN_HEADER struct FT_ValidatorRec_ volatile * FT_Validator
GLuint GLuint GLsizei count
static const ULONG BaseArray[]
struct tagFeatureList FeatureList
otv_ScriptList_validate(FT_Bytes table, FT_Bytes features, OTV_Validator otvalid)
otv_ClassDef_validate(FT_Bytes table, OTV_Validator otvalid)
otv_Coverage_validate(FT_Bytes table, OTV_Validator otvalid, FT_Int expected_count)
otv_FeatureList_validate(FT_Bytes table, FT_Bytes lookups, OTV_Validator otvalid)
otv_Device_validate(FT_Bytes table, OTV_Validator otvalid)
otv_LookupList_validate(FT_Bytes table, OTV_Validator otvalid)
otv_Lookup_validate(FT_Bytes table, OTV_Validator otvalid)
#define OTV_SIZE_CHECK(_size)
typedefFT_BEGIN_HEADER struct OTV_ValidatorRec_ * OTV_Validator
void(* OTV_Validate_Func)(FT_Bytes table, OTV_Validator otvalid)
#define OTV_SIZE_CHECK32(_size)
#define OTV_OPTIONAL_TABLE32(_table)
#define OTV_OPTIONAL_OFFSET(_offset)
#define OTV_NAME_ENTER(name)
#define OTV_OPTIONAL_OFFSET32(_offset)
#define OTV_LIMIT_CHECK(_count)
#define OTV_OPTIONAL_TABLE(_table)
#define OTV_NEST3(x, y, z)
static void otv_CursivePos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_PairPos_validate(FT_Bytes table, OTV_Validator otvalid)
otv_GPOS_subtable_validate(FT_Bytes table, OTV_Validator otvalid)
static const OTV_Validate_Func otv_gpos_validate_funcs[9]
static FT_UInt otv_value_length(FT_UInt format)
static void otv_SinglePos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_PairSet_validate(FT_Bytes table, FT_UInt format1, FT_UInt format2, OTV_Validator otvalid)
static void otv_ChainContextPos_validate(FT_Bytes table, OTV_Validator otvalid)
otv_GPOS_validate(FT_Bytes table, FT_UInt glyph_count, FT_Validator ftvalid)
static void otv_ValueRecord_validate(FT_Bytes table, FT_UInt format, OTV_Validator otvalid)
static void otv_MarkBasePos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_MarkArray_validate(FT_Bytes table, OTV_Validator valid)
static void otv_x_sxy(FT_Bytes table, OTV_Validator otvalid)
static void otv_MarkLigPos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_ExtensionPos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_ContextPos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_MarkMarkPos_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_u_O_O_u_O_O(FT_Bytes table, OTV_Validator otvalid)
static void otv_Anchor_validate(FT_Bytes table, OTV_Validator valid)