src/hb-ot-layout-gpos-table.hh | 3 +++ src/hb-ot-shape.cc | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-)
New commits: commit ff31b3c1b8a2a21b57dba37eb5bb5db0579e0640 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Nov 4 22:42:41 2015 -0800 Skip GPOS cursive / attachment adjustmnent if none happened I'm starting to really like how free these new scratch_flags are. diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 568b5f6..3bb0913 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -1602,6 +1602,9 @@ GPOS::position_finish (hb_font_t *font HB_UNUSED, hb_buffer_t *buffer) for (unsigned int i = 0; i < len; i++) fix_cursive_minor_offset (pos, i, direction); + if (!(buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII)) + return; + /* Handle attachments */ for (unsigned int i = 0; i < len; i++) fix_mark_attachment (pos, i, direction); commit 0f407325f6923db11d332585e8250e3646cb74d6 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Nov 4 22:28:44 2015 -0800 Minor diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index c43b5bc..4b2732b 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -580,7 +580,6 @@ hb_ot_substitute_complex (hb_ot_shape_context_t *c) { hb_buffer_t *buffer = c->buffer; - _hb_buffer_allocate_gsubgpos_vars (buffer); hb_ot_layout_substitute_start (c->font, buffer); if (!hb_ot_layout_has_glyph_classes (c->face)) @@ -597,6 +596,9 @@ static inline void hb_ot_substitute (hb_ot_shape_context_t *c) { hb_ot_substitute_default (c); + + _hb_buffer_allocate_gsubgpos_vars (c->buffer); + hb_ot_substitute_complex (c); } commit 497a6c2071cd0638e4c6af07621d01335fd963a9 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Nov 4 22:24:19 2015 -0800 Skip forming clusters if text is all ASCII diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index e0331cd..c43b5bc 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -263,7 +263,8 @@ hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font) static void hb_form_clusters (hb_buffer_t *buffer) { - if (buffer->cluster_level != HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) + if (!(buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII) || + buffer->cluster_level != HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) return; /* Loop duplicated in hb_ensure_native_direction(). */ _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz