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

Behdad Esfahbod behdad at kemper.freedesktop.org
Sat Sep 29 00:53:31 UTC 2018


 .circleci/config.yml        |    2 +-
 appveyor.yml                |    6 +++---
 src/hb-ot-shape-fallback.cc |    9 ++++++++-
 test/api/test-multithread.c |   12 ++++++++----
 4 files changed, 20 insertions(+), 9 deletions(-)

New commits:
commit c763b9440189b541316054ba4f623e728b5aae77
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Sep 28 20:53:07 2018 -0400

    [test-multithread] Disable FreeType funcs

diff --git a/test/api/test-multithread.c b/test/api/test-multithread.c
index 63dd8d7e..116260bd 100644
--- a/test/api/test-multithread.c
+++ b/test/api/test-multithread.c
@@ -153,8 +153,12 @@ main (int argc, char **argv)
   fill_the_buffer (ref_buffer);
 
   test_body ();
-  hb_ft_font_set_funcs (font);
-  test_body ();
+
+  /* hb-font backed by FreeType functions can only be used from
+   * one thread at a time, because that's FT_Face's MT guarantee.
+   * So, disable this, even though it works "most of the time". */
+  //hb_ft_font_set_funcs (font);
+  //test_body ();
 
   hb_buffer_destroy (ref_buffer);
 
commit 9b0b40b3c1ac8155c80ed5dc976228f4d3ec7e1f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Sep 28 11:16:18 2018 -0400

    Fix fallback kerning to check for current glyph's mask

diff --git a/src/hb-ot-shape-fallback.cc b/src/hb-ot-shape-fallback.cc
index 5f43023b..5fec9d87 100644
--- a/src/hb-ot-shape-fallback.cc
+++ b/src/hb-ot-shape-fallback.cc
@@ -444,7 +444,8 @@ _hb_ot_shape_fallback_kern (const hb_ot_shape_plan_t *plan,
   if (!plan->has_kern) return;
 
   OT::hb_ot_apply_context_t c (1, font, buffer);
-  c.set_lookup_mask (plan->kern_mask);
+  hb_mask_t kern_mask = plan->kern_mask;
+  c.set_lookup_mask (kern_mask);
   c.set_lookup_props (OT::LookupFlag::IgnoreMarks);
   OT::hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c.iter_input;
   skippy_iter.init (&c);
@@ -454,6 +455,12 @@ _hb_ot_shape_fallback_kern (const hb_ot_shape_plan_t *plan,
   hb_glyph_position_t *pos = buffer->pos;
   for (unsigned int idx = 0; idx < count;)
   {
+    if (!(buffer->cur().mask & kern_mask))
+    {
+      idx++;
+      continue;
+    }
+
     skippy_iter.reset (idx, 1);
     if (!skippy_iter.next ())
     {
commit 909a07b587884e9cd1d92ba9f3d5b96d8774c67a
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Sat Sep 29 03:10:13 2018 +0330

    [circleci] Improve clang-everything bot log, more to come
    
    #1196

diff --git a/.circleci/config.yml b/.circleci/config.yml
index c3271599..67caff06 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -91,7 +91,7 @@ jobs:
       - run: apt update || true
       - run: apt install -y clang lld binutils libtool autoconf automake make pkg-config gtk-doc-tools ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python python-pip
       - run: pip install fonttools
-      - run: CFLAGS="-Weverything -Wno-padded -Wno-cast-qual -Wno-sign-conversion -Wno-conversion" CXXFLAGS="-Weverything -Wno-old-style-cast -Wno-documentation -Wno-conversion -Wno-sign-conversion -Wno-c++98-compat -Wno-extra-semi -Wno-c++98-compat-pedantic -Wno-documentation-unknown-command -Wno-padded -Wno-shift-sign-overflow -Wno-missing-field-initializers -Wno-double-promotion -Wno-reserved-id-macro -Wno-cast-qual -Wno-unused-parameter -Wno-comma -Wno-shadow -Wno-used-but-marked-unused -Wno-format-pedantic -Wno-zero-as-null-pointer-constant -Wno-disabled-macro-expansion -Wno-covered-switch-default -Wno-conditional-uninitialized -Wno-unreachable-code -Wno-unused-macros -Wno-float-equal -Wno-missing-prototypes" CC=clang CXX=clang++ ./autogen.sh --with-freetype --with-glib --with-cairo --with-icu --with-graphite2
+      - run: CFLAGS="-Weverything -Wno-padded -Wno-cast-qual -Wno-sign-conversion -Wno-conversion -Wno-documentation -Wno-documentation-unknown-command" CXXFLAGS="-Weverything -Wno-old-style-cast -Wno-documentation -Wno-documentation-unknown-command -Wno-conversion -Wno-sign-conversion -Wno-c++98-compat -Wno-extra-semi -Wno-c++98-compat-pedantic -Wno-padded -Wno-shift-sign-overflow -Wno-missing-field-initializers -Wno-double-promotion -Wno-reserved-id-macro -Wno-cast-qual -Wno-unused-parameter -Wno-comma -Wno-shadow -Wno-used-but-marked-unused -Wno-format-pedantic -Wno-zero-as-null-pointer-constant -Wno-disabled-macro-expansion -Wno-covered-switch-default -Wno-conditional-uninitialized -Wno-unreachable-code -Wno-unused-macros -Wno-float-equal -Wno-missing-prototypes" CC=clang CXX=clang++ ./autogen.sh --with-freetype --with-glib --with-cairo --with-icu --with-graphite2
       - run: make
       - run: make check || .ci/fail.sh
 
commit 9be8062b4d241f02bb96df436e98f10f08bda4f8
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Sat Sep 29 02:11:05 2018 +0330

    [ci] Another try on mingw bot

diff --git a/appveyor.yml b/appveyor.yml
index 30bcb0a2..f10078fd 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -29,7 +29,7 @@ environment:
       MSYS2_ARCH: i686
 
 install:
-  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman -Sy && pacman -S pacman-mirrors && pacman --force -Syu --noconfirm"'
+  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --force --noconfirm -Sy && pacman --noconfirm --force -S pacman-mirrors && pacman --force -Syu --noconfirm"'
   - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-x86_64-ragel"
 
 build_script:
@@ -44,8 +44,8 @@ build_script:
   - 'if "%compiler%"=="msvc" msbuild harfbuzz.sln /p:Configuration=%configuration% /p:Platform=%platform%'
   - 'if "%compiler%"=="msvc" if not "%platform%"=="ARM" ctest --output-on-failure -C %configuration%'
 
-  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Syyu mingw-w64-$MSYS2_ARCH-gcc"'
-  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S --needed mingw-w64-$MSYS2_ARCH-{freetype,cairo,icu,gettext,gobject-introspection,gcc,gcc-libs,glib2,graphite2,pkg-config,python2}"'
+  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm --force -Syyu mingw-w64-$MSYS2_ARCH-gcc"'
+  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm --force -S --needed mingw-w64-$MSYS2_ARCH-{freetype,cairo,icu,gettext,gobject-introspection,gcc,gcc-libs,glib2,graphite2,pkg-config,python2}"'
   - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "curl https://raw.githubusercontent.com/mirror/mingw-w64/023eb04c396d4e8d8fcf604cfababc53dae13398/mingw-w64-headers/include/dwrite_1.h > %MINGW_PREFIX%/%MINGW_CHOST%/include/dwrite_1.h"'
   - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; PATH=$PATH:/mingw64/bin:/mingw32/bin; ./autogen.sh --with-uniscribe --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 --with-directwrite --build=%MINGW_CHOST% --host=%MINGW_CHOST% --prefix=%MINGW_PREFIX%; make; make check || .ci/fail.sh"'
 
commit d4d261a97723b27fb9ad9a69b8dc7fd8c560a98b
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Sat Sep 29 01:57:50 2018 +0330

    [ci] Another try on fixing mingw bots
    
    Per https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-73555971

diff --git a/appveyor.yml b/appveyor.yml
index 356afce6..30bcb0a2 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -29,7 +29,7 @@ environment:
       MSYS2_ARCH: i686
 
 install:
-  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --force -Syu --noconfirm"'
+  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman -Sy && pacman -S pacman-mirrors && pacman --force -Syu --noconfirm"'
   - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-x86_64-ragel"
 
 build_script:
commit 7b68edf2abc7680199360d52ed283cfc4f49b7d5
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Fri Sep 28 20:53:48 2018 +0330

    [tests] Don't try to get glyph names on failures
    
    As it may cause a race unrelated to the issue actually happened

diff --git a/test/api/test-multithread.c b/test/api/test-multithread.c
index a75feffa..63dd8d7e 100644
--- a/test/api/test-multithread.c
+++ b/test/api/test-multithread.c
@@ -69,13 +69,13 @@ validity_check (hb_buffer_t *buffer) {
     hb_buffer_serialize_glyphs (buffer, 0, hb_buffer_get_length (ref_buffer),
 				out, sizeof (out), NULL,
 				font, HB_BUFFER_SERIALIZE_FORMAT_TEXT,
-				HB_BUFFER_SERIALIZE_FLAG_DEFAULT);
+				HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES);
     fprintf (stderr, "Actual: %s\n", out);
 
     hb_buffer_serialize_glyphs (ref_buffer, 0, hb_buffer_get_length (ref_buffer),
 				out, sizeof (out), NULL,
 				font, HB_BUFFER_SERIALIZE_FORMAT_TEXT,
-				HB_BUFFER_SERIALIZE_FLAG_DEFAULT);
+				HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES);
     fprintf (stderr, "Expected: %s\n", out);
 
     exit (1);
commit d289d6381864649504abfb1196ac20a1d4664a4e
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Fri Sep 28 20:47:21 2018 +0330

    [ci] Trying to fix mingw bot
    
    As https://github.com/Alexpux/MSYS2-packages/issues/702

diff --git a/appveyor.yml b/appveyor.yml
index cc4acec1..356afce6 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -29,7 +29,7 @@ environment:
       MSYS2_ARCH: i686
 
 install:
-  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman -Syu --noconfirm"'
+  - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --force -Syu --noconfirm"'
   - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-x86_64-ragel"
 
 build_script:


More information about the HarfBuzz mailing list