From 2bd953ff4f656f042dba2845f0479a7fe7c439a6 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 18 Jul 2019 14:25:45 -0700 Subject: [PATCH] [metrics] Fix weird use of xor I believe that was a try to use one approach as fallback to other. But felt wrong. Just believe what's in OS/2 table to be correct. --- src/hb-ot-metrics-internal.cc | 12 ++++++------ src/hb-ot-os2-table.hh | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/hb-ot-metrics-internal.cc b/src/hb-ot-metrics-internal.cc index 9f0294f..9af5b8c 100644 --- a/src/hb-ot-metrics-internal.cc +++ b/src/hb-ot-metrics-internal.cc @@ -55,14 +55,14 @@ hb_ot_metrics_get_position_internal (hb_face_t *face, (face->table.TABLE->has_data () && \ (position && (*position = face->table.TABLE->ATTR + face->table.MVAR->get_var (metrics_tag, nullptr, 0)), true)) case HB_OT_METRICS_HORIZONTAL_ASCENDER: - return (face->table.OS2->is_typo_metrics () ^ GET_METRIC (hhea, ascender)) || - GET_METRIC (OS2, sTypoAscender); + return face->table.OS2->use_typo_metrics () ? + GET_METRIC (OS2, sTypoAscender) : GET_METRIC (hhea, ascender); case HB_OT_METRICS_HORIZONTAL_DESCENDER: - return (face->table.OS2->is_typo_metrics () ^ GET_METRIC (hhea, descender)) || - GET_METRIC (OS2, sTypoDescender); + return face->table.OS2->use_typo_metrics () ? + GET_METRIC (OS2, sTypoDescender) : GET_METRIC (hhea, descender); case HB_OT_METRICS_HORIZONTAL_LINE_GAP: - return (face->table.OS2->is_typo_metrics () ^ GET_METRIC (hhea, lineGap)) || - GET_METRIC (OS2, sTypoLineGap); + return face->table.OS2->use_typo_metrics () ? + GET_METRIC (OS2, sTypoLineGap) : GET_METRIC (hhea, lineGap); case HB_OT_METRICS_HORIZONTAL_CLIPPING_ASCENT: return GET_METRIC (OS2, usWinAscent); case HB_OT_METRICS_HORIZONTAL_CLIPPING_DESCENT: return GET_METRIC (OS2, usWinDescent); case HB_OT_METRICS_VERTICAL_ASCENDER: return GET_METRIC (vhea, ascender); diff --git a/src/hb-ot-os2-table.hh b/src/hb-ot-os2-table.hh index bfe8ef9..aa1e75d 100644 --- a/src/hb-ot-os2-table.hh +++ b/src/hb-ot-os2-table.hh @@ -119,7 +119,7 @@ struct OS2 bool is_italic () const { return fsSelection & ITALIC; } bool is_oblique () const { return fsSelection & OBLIQUE; } - bool is_typo_metrics () const { return fsSelection & USE_TYPO_METRICS; } + bool use_typo_metrics () const { return fsSelection & USE_TYPO_METRICS; } enum width_class_t { FWIDTH_ULTRA_CONDENSED = 1, /* 50% */ -- 2.7.4