/* * passed tables_size covers whole StateTable, including kern fmt1 header */ static void gxv_kern_subtable_fmt1_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 gxvalid ) { FT_UShort o[4]; FT_UShort *l[4]; FT_UShort buff[5]; GXV_kern_fmt1_StateOptRecData optdata = (GXV_kern_fmt1_StateOptRecData)gxvalid->statetable.optdata; o[0] = classTable; o[1] = stateArray; o[2] = entryTable; o[3] = optdata->valueTable; l[0] = classTable_length_p; l[1] = stateArray_length_p; l[2] = entryTable_length_p; l[3] = &(optdata->valueTable_length); gxv_set_length_by_ushort_offset( o, l, buff, 4, table_size, gxvalid ); }
static void gxv_mort_subtable_type2_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 gxvalid) { FT_UShort o[6]; FT_UShort *l[6]; FT_UShort buff[7]; GXV_mort_subtable_type2_StateOptRecData optdata = (GXV_mort_subtable_type2_StateOptRecData)gxvalid->statetable.optdata; GXV_NAME_ENTER("subtable boundaries setup"); o[0] = classTable; o[1] = stateArray; o[2] = entryTable; o[3] = optdata->ligActionTable; o[4] = optdata->componentTable; o[5] = optdata->ligatureTable; l[0] = classTable_length_p; l[1] = stateArray_length_p; l[2] = entryTable_length_p; l[3] = &(optdata->ligActionTable_length); l[4] = &(optdata->componentTable_length); l[5] = &(optdata->ligatureTable_length); gxv_set_length_by_ushort_offset(o, l, buff, 6, table_size, gxvalid); GXV_TRACE(("classTable: offset=0x%04x length=0x%04x\n", classTable, *classTable_length_p)); GXV_TRACE(("stateArray: offset=0x%04x length=0x%04x\n", stateArray, *stateArray_length_p)); GXV_TRACE(("entryTable: offset=0x%04x length=0x%04x\n", entryTable, *entryTable_length_p)); GXV_TRACE(("ligActionTable: offset=0x%04x length=0x%04x\n", optdata->ligActionTable, optdata->ligActionTable_length)); GXV_TRACE(("componentTable: offset=0x%04x length=0x%04x\n", optdata->componentTable, optdata->componentTable_length)); GXV_TRACE(("ligatureTable: offset=0x%04x length=0x%04x\n", optdata->ligatureTable, optdata->ligatureTable_length)); GXV_EXIT; }