diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc index a0f1e304b..e7b57b88a 100644 --- a/src/hb-ot-font.cc +++ b/src/hb-ot-font.cc @@ -62,11 +62,15 @@ struct hb_ot_face_metrics_accelerator_t { hb_blob_t *os2_blob = OT::Sanitizer::sanitize (face->reference_table (os2_tag)); const OT::os2 *os2 = OT::Sanitizer::lock_instance (os2_blob); - this->ascender = os2->sTypoAscender; - this->descender = os2->sTypoDescender; - this->line_gap = os2->sTypoLineGap; +#define USE_TYPO_METRICS (1u<<7) + if (0 != (os2->fsSelection & USE_TYPO_METRICS)) + { + this->ascender = os2->sTypoAscender; + this->descender = os2->sTypoDescender; + this->line_gap = os2->sTypoLineGap; + got_font_extents = (this->ascender | this->descender) != 0; + } hb_blob_destroy (os2_blob); - got_font_extents = (this->ascender | this->descender) != 0; } hb_blob_t *_hea_blob = OT::Sanitizer::sanitize (face->reference_table (_hea_tag));