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

Behdad Esfahbod behdad at kemper.freedesktop.org
Mon Apr 3 11:23:06 UTC 2017


 src/hb-ot-map-private.hh      |    2 +-
 test/shaping/README.md        |    4 ++--
 test/shaping/hb_test_tools.py |   13 ++++++++++++-
 test/shaping/record-test.sh   |   12 ++++++------
 4 files changed, 21 insertions(+), 10 deletions(-)

New commits:
commit 740fdbcd0e6d25c1d6f12537ca2aa559650b9d52
Author: jfkthame <jfkthame at gmail.com>
Date:   Mon Apr 3 12:22:39 2017 +0100

    avoid UBSan warning in get_stage_lookups (#450)
    
    See https://bugzilla.mozilla.org/show_bug.cgi?id=1336600

diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh
index 0395c9c2..b69e5344 100644
--- a/src/hb-ot-map-private.hh
+++ b/src/hb-ot-map-private.hh
@@ -113,7 +113,7 @@ struct hb_ot_map_t
     assert (stage <= stages[table_index].len);
     unsigned int start = stage ? stages[table_index][stage - 1].last_lookup : 0;
     unsigned int end   = stage < stages[table_index].len ? stages[table_index][stage].last_lookup : lookups[table_index].len;
-    *plookups = &lookups[table_index][start];
+    *plookups = end == start ? NULL : &lookups[table_index][start];
     *lookup_count = end - start;
   }
 
commit 8d256841ca7462fd596329abf6f71bafb56fd621
Author: Dominik Schloesser <dsc at dosc.net>
Date:   Sun Mar 26 09:22:34 2017 +0200

    Current fonttools (3.9.1) generate subset-file called font.subset.ttf instead of older font.ttf.subset

diff --git a/test/shaping/record-test.sh b/test/shaping/record-test.sh
index b2a74f7b..cf17c542 100755
--- a/test/shaping/record-test.sh
+++ b/test/shaping/record-test.sh
@@ -48,20 +48,20 @@ pyftsubset \
 	--no-hinting \
 	"$dir/font.ttf" \
 	--text="$text"
-if ! test -s "$dir/font.ttf.subset"; then
-	echo "Subsetter didn't produce nonempty subset font in $dir/font.ttf.subset" >&2
+if ! test -s "$dir/font.subset.ttf"; then
+	echo "Subsetter didn't produce nonempty subset font in $dir/font.subset.ttf" >&2
 	exit 2
 fi
 
 # Verify that subset font produces same glyphs!
-glyphs_subset=`echo "$text" | $hb_shape $options "$dir/font.ttf.subset"`
+glyphs_subset=`echo "$text" | $hb_shape $options "$dir/font.subset.ttf"`
 
 if ! test "x$glyphs" = "x$glyphs_subset"; then
 	echo "Subset font produced different glyphs!" >&2
 	echo "Perhaps font doesn't have glyph names; checking visually..." >&2
 	hb_view=${hb_shape/shape/view}
 	echo "$text" | $hb_view $options "$dir/font.ttf" --output-format=png --output-file="$dir/orig.png"
-	echo "$text" | $hb_view $options "$dir/font.ttf.subset" --output-format=png --output-file="$dir/subset.png"
+	echo "$text" | $hb_view $options "$dir/font.subset.ttf" --output-format=png --output-file="$dir/subset.png"
 	if ! cmp "$dir/orig.png" "$dir/subset.png"; then
 		echo "Images differ.  Please inspect $dir/*.png." >&2
 		echo "$glyphs"
@@ -74,9 +74,9 @@ if ! test "x$glyphs" = "x$glyphs_subset"; then
 	glyphs=$glyphs_subset
 fi
 
-sha1sum=`sha1sum "$dir/font.ttf.subset" | cut -d' ' -f1`
+sha1sum=`sha1sum "$dir/font.subset.ttf" | cut -d' ' -f1`
 subset="fonts/sha1sum/$sha1sum.ttf"
-mv "$dir/font.ttf.subset" "$subset"
+mv "$dir/font.subset.ttf" "$subset"
 
 # There ought to be an easier way to do this, but it escapes me...
 unicodes_file=`mktemp`
commit c2a9de15f5d9477c6f1c143ed8265f71fdb04584
Author: Dominik Schloesser <dsc at dosc.net>
Date:   Sun Mar 26 09:21:13 2017 +0200

    Updated samples: record-it.sh is now record-test.sh

diff --git a/test/shaping/README.md b/test/shaping/README.md
index bf099094..a581a343 100644
--- a/test/shaping/README.md
+++ b/test/shaping/README.md
@@ -14,7 +14,7 @@ FontTools from <https://github.com/behdad/fonttools>.
 
 To use `record-test.sh`, just put it right before the `hb-shape` invocation:
 ```sh
-$ ./hb-unicode-encode 41 42 43 627 | ./record-it.sh ../../util/hb-shape font.ttf
+$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh ../../util/hb-shape font.ttf
 ```
 what this does is:
   * Subset the font for the sequence of Unicode characters requested,
@@ -27,7 +27,7 @@ what this does is:
     and prints out the test case input, which you can then redirect to
     an existing or new test file in `tests`, eg.:
 ```sh
-$ ./hb-unicode-encode 41 42 43 627 | ./record-it.sh ../../util/hb-shape font.ttf >> tests/test-name.test
+$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh ../../util/hb-shape font.ttf >> tests/test-name.test
 ```
 
 If you created a new test file, add it to `Makefile.am` so it is run.
commit f2e6c7ce51283809033d08692a2dee7cf04aefc5
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Sun Mar 26 10:48:53 2017 +0200

    [tools] Make hb-unicode-code work with Python 3
    
    Related to https://github.com/behdad/harfbuzz/pull/445

diff --git a/test/shaping/hb_test_tools.py b/test/shaping/hb_test_tools.py
index 74739829..052974de 100644
--- a/test/shaping/hb_test_tools.py
+++ b/test/shaping/hb_test_tools.py
@@ -46,6 +46,17 @@ try:
 except NameError:
 	unichr = chr
 
+try:
+	unicode = unicode
+except NameError:
+	unicode = str
+
+def tounicode(s, encoding='ascii', errors='strict'):
+	if not isinstance(s, unicode):
+		return s.decode(encoding, errors)
+	else:
+		return s
+
 class ColorFormatter:
 
 	class Null:
@@ -445,7 +456,7 @@ class Unicode:
 
 	@staticmethod
 	def decode (s):
-		return u','.join ("U+%04X" % ord (u) for u in unicode (s, 'utf-8')).encode ('utf-8')
+		return u','.join ("U+%04X" % ord (u) for u in tounicode (s, 'utf-8'))
 
 	@staticmethod
 	def parse (s):


More information about the HarfBuzz mailing list