Don't try zeroing marks by GDEF if there are no non-ASCII
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 5 Nov 2015 06:55:11 +0000 (22:55 -0800)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 5 Nov 2015 06:59:28 +0000 (22:59 -0800)
This one is a hack, but should be ok.

src/hb-ot-shape.cc

index 8d4b169..36b1297 100644 (file)
@@ -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++)