(face->table.TABLE->has_data () && \
(position && (*position = face->table.TABLE->ATTR + GET_VAR), true))
case HB_OT_METRICS_HORIZONTAL_ASCENDER:
- return face->table.OS2->use_typo_metrics () ?
- GET_METRIC (OS2, sTypoAscender) : GET_METRIC (hhea, ascender);
+ 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->use_typo_metrics () ?
- GET_METRIC (OS2, sTypoDescender) : GET_METRIC (hhea, descender);
+ 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->use_typo_metrics () ?
- GET_METRIC (OS2, sTypoLineGap) : GET_METRIC (hhea, lineGap);
+ 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);