diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 8d4b1698e..36b1297dd 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -638,6 +638,10 @@ zero_mark_widths_by_unicode (hb_buffer_t *buffer, bool adjust_offsets) static inline void zero_mark_widths_by_gdef (hb_buffer_t *buffer, bool adjust_offsets) { + /* This one is a hack; Technically GDEF can mark ASCII glyphs as marks, but we don't listen. */ + if (!(buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII)) + return; + unsigned int count = buffer->len; hb_glyph_info_t *info = buffer->info; for (unsigned int i = 0; i < count; i++)