/* nFeatureFlags is typed to FT_ULong to accept that in mort (typed FT_UShort) and morx (typed FT_ULong).  */
gxv_mort_featurearray_validate(FT_Bytes table, FT_Bytes limit, FT_ULong nFeatureFlags, GXV_Validator valid)
/* nFeatureFlags is typed to FT_ULong to accept that in mort (typed FT_UShort) and morx (typed FT_ULong).  */
gxv_mort_featurearray_validate(FT_Bytes table, FT_Bytes limit, FT_ULong nFeatureFlags, GXV_Validator valid)
{
    FT_Bytes  p = table;
    FT_ULong  i;
    GXV_mort_featureRec  f = GXV_MORT_FEATURE_OFF;
    GXV_NAME_ENTER( "mort feature list" );
    for ( i = 0; i < nFeatureFlags; i++ )
    {
      GXV_LIMIT_CHECK( 2 + 2 + 4 + 4 );
      f.featureType    = FT_NEXT_USHORT( p );
      f.featureSetting = FT_NEXT_USHORT( p );
      f.enableFlags    = FT_NEXT_ULONG( p );
      f.disableFlags   = FT_NEXT_ULONG( p );
      gxv_mort_feature_validate( &f, valid );
    }
    if ( !IS_GXV_MORT_FEATURE_OFF( f ) )
      FT_INVALID_DATA;
    valid->subtable_length = p - table;
    GXV_EXIT;
  }