From: Behdad Esfahbod Date: Thu, 5 Nov 2015 02:58:02 +0000 (-0800) Subject: Don't do fractions if buffer is ASCII-only X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e3e4bb011ae1a2f1ba05e7ea450595b185304bec;p=platform%2Fupstream%2FlibHarfBuzzSharp.git Don't do fractions if buffer is ASCII-only --- diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh index 574fb36..8550517 100644 --- a/src/hb-buffer-private.hh +++ b/src/hb-buffer-private.hh @@ -43,8 +43,9 @@ template <> class hb_mark_as_flags_t {}; enum hb_buffer_scratch_flags_t { HB_BUFFER_SCRATCH_FLAG_DEFAULT = 0x00000000u, - HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES = 0x00000001u, - HB_BUFFER_SCRATCH_FLAG_HAS_SPACE_FALLBACK = 0x00000002u, + HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII = 0x00000001u, + HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES = 0x00000002u, + HB_BUFFER_SCRATCH_FLAG_HAS_SPACE_FALLBACK = 0x00000004u, }; template <> class hb_mark_as_flags_t {}; diff --git a/src/hb-ot-layout-private.hh b/src/hb-ot-layout-private.hh index 60fca26..049b232 100644 --- a/src/hb-ot-layout-private.hh +++ b/src/hb-ot-layout-private.hh @@ -249,6 +249,7 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer) if (u >= 0x80) { + buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII; if (unlikely (unicode->is_default_ignorable (u))) { buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES; diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 30563d0..be9c438 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -346,7 +346,8 @@ hb_ot_mirror_chars (hb_ot_shape_context_t *c) static inline void hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c) { - if (!c->plan->has_frac) + if (!(c->buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII) || + !c->plan->has_frac) return; hb_buffer_t *buffer = c->buffer;