/* Unfortunately, we can't enable our memory optimizations if FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because at least one rogue client (libXfont in the X.Org XServer) is directly accessing the metrics.  */
tt_face_load_hmtx(TT_Face face, FT_Stream stream, FT_Bool vertical)
/* Unfortunately, we can't enable our memory optimizations if FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because at least one rogue client (libXfont in the X.Org XServer) is directly accessing the metrics.  */
tt_face_load_hmtx(TT_Face face, FT_Stream stream, FT_Bool vertical)
{
    FT_Error   error;
    FT_ULong   tag, table_size;
    FT_ULong*  ptable_offset;
    FT_ULong*  ptable_size;
    if ( vertical )
    {
      tag           = TTAG_vmtx;
      ptable_offset = &face->vert_metrics_offset;
      ptable_size   = &face->vert_metrics_size;
    }
    else
    {
      tag           = TTAG_hmtx;
      ptable_offset = &face->horz_metrics_offset;
      ptable_size   = &face->horz_metrics_size;
    }
    error = face->goto_table( face, tag, stream, &table_size );
    if ( error )
      goto Fail;
    *ptable_size   = table_size;
    *ptable_offset = FT_STREAM_POS();
  Fail:
    return error;
  }