[HarfBuzz] harfbuzz: Branch 'master' - 3 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Nov 4 22:48:21 PST 2015


 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 <behdad at 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 <behdad at 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 <behdad at 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(). */


More information about the HarfBuzz mailing list