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

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Jan 12 10:42:50 UTC 2018


 docs/Makefile.am                    |    2 +-
 src/hb-aat-layout-common-private.hh |   12 +++++++++---
 src/hb-aat-layout-morx-table.hh     |    2 ++
 3 files changed, 12 insertions(+), 4 deletions(-)

New commits:
commit 57051b4f672d7d9dd10c45cc95b1e50e32cd42a9
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jan 12 11:42:25 2018 +0100

    [aat] Flush rest of buffer if state machine failed

diff --git a/src/hb-aat-layout-common-private.hh b/src/hb-aat-layout-common-private.hh
index 2dcbd557..990be2e7 100644
--- a/src/hb-aat-layout-common-private.hh
+++ b/src/hb-aat-layout-common-private.hh
@@ -631,7 +631,7 @@ struct StateTableDriver
     unsigned int count = buffer->len;
     unsigned int state = 0;
     bool last_was_dont_advance = false;
-    for (buffer->idx = 0; buffer->idx <= count; buffer->idx++)
+    for (buffer->idx = 0; buffer->idx <= count;)
     {
       if (!state)
 	last_zero = buffer->idx;
@@ -655,7 +655,6 @@ struct StateTableDriver
 	if (likely (!dont_advance_set.has (key)))
 	{
 	  dont_advance_set.add (key);
-	  buffer->idx--;
 	  last_was_dont_advance = true;
 	}
 	else
@@ -664,10 +663,17 @@ struct StateTableDriver
       else
         last_was_dont_advance = false;
 
+      if (!last_was_dont_advance)
+        buffer->next_glyph ();
+
       state = entry->newState;
     }
 
-    /* XXX finish if not in-place */
+    if (!c->in_place)
+    {
+      for (buffer->idx = 0; buffer->idx <= count;)
+        buffer->next_glyph ();
+    }
   }
 
   public:
diff --git a/src/hb-aat-layout-morx-table.hh b/src/hb-aat-layout-morx-table.hh
index f24db56d..f0715894 100644
--- a/src/hb-aat-layout-morx-table.hh
+++ b/src/hb-aat-layout-morx-table.hh
@@ -42,6 +42,7 @@ struct RearrangementSubtable
 {
   struct driver_context_t
   {
+    static const bool in_place = true;
     enum Flags {
       MarkFirst		= 0x8000,	/* If set, make the current glyph the first
 					 * glyph to be rearranged. */
@@ -185,6 +186,7 @@ struct ContextualSubtable
 
   struct driver_context_t
   {
+    static const bool in_place = true;
     enum Flags {
       SetMark		= 0x8000,	/* If set, make the current glyph the marked glyph. */
       DontAdvance	= 0x4000,	/* If set, don't advance to the next glyph before
commit 369dfab0f8b7f22338bbd7a58a27e2e02e1efc29
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jan 12 11:37:01 2018 +0100

    Minor

diff --git a/docs/Makefile.am b/docs/Makefile.am
index 79934d5a..a9935385 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -111,7 +111,7 @@ EXTRA_DIST += version.xml.in
 # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
 #DISTCLEANFILES +=
 
-# Comment this out if you want 'make check' to test you doc status
+# Comment this out if you don't want 'make check' to test you doc status
 # and run some sanity checks
 if ENABLE_GTK_DOC
 TESTS_ENVIRONMENT = cd $(srcdir) && \


More information about the HarfBuzz mailing list