summaryrefslogtreecommitdiff
path: root/Build/source/libs
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-10-20 07:22:17 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-10-20 07:22:17 +0000
commit8e875770a05a55eb6f3948894eb5fc3aaaa6704b (patch)
tree7e70b2bf63db5e384a6f0909adde4bb151f39e78 /Build/source/libs
parentec33d1a0d47e85033a9f19511334444f55086d89 (diff)
harfbuzz 2.0.1
git-svn-id: svn://tug.org/texlive/trunk@48954 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs')
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/TL-Changes2
-rwxr-xr-xBuild/source/libs/harfbuzz/configure24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/BUILD.md2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog273
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/NEWS15
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/README.python.md2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md5
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/configure.ac2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-ankr-table.hh6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-common.hh55
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-kerx-table.hh45
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc20
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.hh8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-machinery.hh6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-file.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-hvar-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-mvar-table.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc8
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
37 files changed, 472 insertions, 80 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 850fa0b8e53..2de7440dbca 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -25,7 +25,7 @@ graphite2 1.3.12 - checked 16aug18
http://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)
-harfbuzz 2.0.0 - checked 20oct18
+harfbuzz 2.0.1 - checked 20oct18
http://www.freedesktop.org/software/harfbuzz/release/
icu 61.1 - checked 29mar18
diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog
index 83bb0c0ce43..6bf57987645 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,5 +1,10 @@
2018-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+ Import harfbuzz-2.0.1.
+ * version.ac: Adjusted.
+
+2018-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
Import harfbuzz-2.0.0.
* version.ac, Makefile.am, include/Makefile.am: Adjusted.
diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
index 9878ab40ff1..dd5923ea964 100644
--- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog
+++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
@@ -1,5 +1,10 @@
2018-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+ Imported harfbuzz-2.0.1 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
+2018-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
Imported harfbuzz-2.0.0 source tree from:
http://www.freedesktop.org/software/harfbuzz/release/
diff --git a/Build/source/libs/harfbuzz/TLpatches/TL-Changes b/Build/source/libs/harfbuzz/TLpatches/TL-Changes
index e4a2d8d755b..d977c98a9cc 100644
--- a/Build/source/libs/harfbuzz/TLpatches/TL-Changes
+++ b/Build/source/libs/harfbuzz/TLpatches/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-2.0.0/ tree as obtained from:
+Changes applied to the harfbuzz-2.0.1/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure
index b81652fc50b..b435769feed 100755
--- a/Build/source/libs/harfbuzz/configure
+++ b/Build/source/libs/harfbuzz/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.0.0.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.0.1.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='2.0.0'
-PACKAGE_STRING='harfbuzz (TeX Live) 2.0.0'
+PACKAGE_VERSION='2.0.1'
+PACKAGE_STRING='harfbuzz (TeX Live) 2.0.1'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1317,7 +1317,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures harfbuzz (TeX Live) 2.0.0 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 2.0.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1388,7 +1388,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.0.0:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.0.1:";;
esac
cat <<\_ACEOF
@@ -1495,7 +1495,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 2.0.0
+harfbuzz (TeX Live) configure 2.0.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2131,7 +2131,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz (TeX Live) $as_me 2.0.0, which was
+It was created by harfbuzz (TeX Live) $as_me 2.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4054,7 +4054,7 @@ fi
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='2.0.0'
+ VERSION='2.0.1'
# Some tools Automake needs.
@@ -4248,8 +4248,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=2
HB_VERSION_MINOR=0
-HB_VERSION_MICRO=0
-HB_VERSION=2.0.0
+HB_VERSION_MICRO=1
+HB_VERSION=2.0.1
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -8143,7 +8143,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 2.0.0, which was
+This file was extended by harfbuzz (TeX Live) $as_me 2.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8209,7 +8209,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 2.0.0
+harfbuzz (TeX Live) config.status 2.0.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/BUILD.md b/Build/source/libs/harfbuzz/harfbuzz-src/BUILD.md
index 8a6b5695a06..4c1c306450c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/BUILD.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/BUILD.md
@@ -26,7 +26,7 @@ as with any other standard package. That should leave you with a shared
library in `src/`, and a few utility programs including `hb-view` and `hb-shape`
under `util/`.
-If you are bootstraping from git, you need a few more tools before you can
+If you are bootstrapping from git, you need a few more tools before you can
run `autogen.sh` for the first time. Namely, `pkg-config` and `ragel`.
Again, on Ubuntu / Debian:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt b/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt
index 760883fdae8..4eb23af4db7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt
@@ -107,10 +107,10 @@ include (CheckFunctionExists)
include (CheckIncludeFile)
macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools
foreach (func_name ${ARGN})
- string(TOUPPER ${func_name} definiton_to_add)
- check_function_exists(${func_name} HAVE_${definiton_to_add})
- if (${HAVE_${definiton_to_add}})
- add_definitions(-DHAVE_${definiton_to_add})
+ string(TOUPPER ${func_name} definition_to_add)
+ check_function_exists(${func_name} HAVE_${definition_to_add})
+ if (${HAVE_${definition_to_add}})
+ add_definitions(-DHAVE_${definition_to_add})
endif ()
endforeach ()
endmacro ()
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
index d8f413c5386..ea0b26e87b4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
@@ -1,3 +1,276 @@
+commit 7c2c8ac301b526da8b5384d6b90f156ca096568e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 19:37:46 2018 -0700
+
+ 2.0.1
+
+ NEWS | 15 ++++++++++++++-
+ configure.ac | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 17 insertions(+), 4 deletions(-)
+
+commit 5a24ea15e0c242c3e2a4a49980da3ab7dd61a3df
+Author: Bruce Mitchener <bruce.mitchener@gmail.com>
+Date: Sat Oct 20 08:09:52 2018 +0700
+
+ Make more 'coords' params const.
+
+ src/hb-ot-layout-common.hh | 8 ++++----
+ src/hb-ot-layout-gsubgpos.hh | 2 +-
+ src/hb-ot-var-hvar-table.hh | 2 +-
+ src/hb-ot-var-mvar-table.hh | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 08b7172969b442cc83b47f44e685a0495b2d8cd4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 19:12:33 2018 -0700
+
+ [font] Fix parallel funcs passing to eachover in infinite-loop
+
+ Fixes test just added.
+
+ src/hb-font.cc | 20 +++++++++++++-------
+ src/hb-font.hh | 8 ++++++++
+ 2 files changed, 21 insertions(+), 7 deletions(-)
+
+commit 77d5c3df07bec8e9d2dd57f89d5810b768bdc4f5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 19:01:01 2018 -0700
+
+ [font] Add failing test amongst font-func parallels infinite-looping
+
+ Reported by Nona while updating Android to HarfBuzz 2.0.0.
+
+ test/api/test-font.c | 64
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 64 insertions(+)
+
+commit 29d877518fc2c29083cd7b955b422087966235f7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 16:06:54 2018 -0700
+
+ [kerx] Implement variation-kerning tables (without the variation part)
+
+ SFSNDisplay uses these. We just apply the default kern without
+ variations right now. But at least makes the default kern work.
+
+ src/hb-aat-layout-kerx-table.hh | 37
+ +++++++++++++++++++++++++++++--------
+ 1 file changed, 29 insertions(+), 8 deletions(-)
+
+commit f7c0b4319c6f82f1e0020a0029469d8953a7a161
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 15:23:49 2018 -0700
+
+ [aat] Implement LookupFormat10
+
+ src/hb-aat-layout-ankr-table.hh | 6 +++--
+ src/hb-aat-layout-common.hh | 55
+ ++++++++++++++++++++++++++++++++++++++---
+ src/hb-machinery.hh | 4 +++
+ src/hb-open-type.hh | 3 +++
+ 4 files changed, 63 insertions(+), 5 deletions(-)
+
+commit 257ded1f9ec653d15e79d2ea0a83bd8c5c53d831
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 11:20:14 2018 -0700
+
+ [trak] Fix test for previous fix
+
+ test/shaping/data/in-house/tests/aat-trak.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 72bb139b807c21f1569058fb5fb260dcdd81eba4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 11:15:35 2018 -0700
+
+ [RELEASING] Post-mortem
+
+ Re https://github.com/harfbuzz/harfbuzz/issues/1271
+
+ RELEASING.md | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 79b63561552bdfe8dc67a450d740fda8802486ad
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 11:00:20 2018 -0700
+
+ [trak] Fix extrapolation at end side
+
+ src/hb-aat-layout-trak-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2352cc3539b2e58d0481cdb8b9cd48cbc09a778e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 19 09:58:45 2018 -0700
+
+ [kerx] Whitespace
+
+ src/hb-aat-layout-kerx-table.hh | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 114f66dda6a07d61b5e64da5c44b05db7aa51cc9
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 12:05:26 2018 +0330
+
+ Fix hb_map_is_empty logic
+
+ This needs reviewing
+
+ src/hb-map.hh | 2 +-
+ test/api/test-map.c | 13 ++++++++-----
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+
+commit 9df2fb1611e03e401f0d5a9432b440641085ba1e
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 12:04:47 2018 +0330
+
+ Add API tests for hb_map_t
+
+ src/Makefile.am | 2 +-
+ test/api/Makefile.am | 6 ++-
+ test/api/test-map.c | 114
+ +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 120 insertions(+), 2 deletions(-)
+
+commit 8a5eba711069285e8d8b6d682eea0090256527bb
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 10:20:16 2018 +0330
+
+ [test] cosmetic, use g_assert_cmpint
+
+ test/api/test-ot-name.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit c6eb5e852c24e12fec3138cf9def5eb76acedfd6
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 10:14:25 2018 +0330
+
+ Don't report deprecated symbols as unused symbols
+
+ src/Makefile.am | 2 ++
+ test/api/Makefile.am | 4 +++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+commit 34f357c78a7a530fdb3580ec9d3d865600c06128
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 10:13:53 2018 +0330
+
+ Add test for hb_set_del
+
+ test/api/test-set.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 4594730f64e534e975065afce925b581fd9c6acd
+Author: Bruce Mitchener <bruce.mitchener@gmail.com>
+Date: Fri Oct 19 22:12:25 2018 +0700
+
+ Remove redundant return at end of void-returning function.
+
+ src/hb-ot-layout-gsubgpos.hh | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 093c7c4a54b37f5b12ad21e2d67f109597d068b1
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 18:46:41 2018 +0330
+
+ [ci] Run valgrind on test/api
+
+ run-shape-fuzzer-tests.py automatically runs valgrind if see available
+ but test/api runs it by request, we probably should normalize the
+ approaches
+ later
+
+ .circleci/config.yml | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 8d1e479d1dcf7789be99a6cd0db0b883a90299dc
+Author: Bruce Mitchener <bruce.mitchener@gmail.com>
+Date: Thu Oct 18 22:18:42 2018 +0700
+
+ Use bool literals instead of 0/1.
+
+ src/hb-common.cc | 2 +-
+ src/hb-coretext.cc | 4 ++--
+ src/hb-ot-layout-gpos-table.hh | 2 +-
+ src/hb-ot-tag.cc | 2 +-
+ src/hb-shape-plan.cc | 8 ++++----
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 257d0e5aa36fd5b3e54e04918ce12bb7d7e0d177
+Author: Bruce Mitchener <bruce.mitchener@gmail.com>
+Date: Fri Oct 19 22:49:21 2018 +0700
+
+ Fix typos.
+
+ BUILD.md | 2 +-
+ CMakeLists.txt | 8 ++++----
+ README.python.md | 2 +-
+ README.wine.md | 6 +++---
+ src/hb-machinery.hh | 2 +-
+ src/hb-null.hh | 4 ++--
+ src/hb-open-file.hh | 2 +-
+ src/hb-ot-layout-common.hh | 2 +-
+ src/hb-ot-layout-gdef-table.hh | 2 +-
+ src/hb-ot-layout-gsub-table.hh | 2 +-
+ src/hb-ot-layout-gsubgpos.hh | 2 +-
+ 11 files changed, 17 insertions(+), 17 deletions(-)
+
+commit b7cef8cb1dfaf1f0f2c0d79b96b171049b69466a
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 09:24:21 2018 +0330
+
+ Enable valgrind and dedicate a bot to it
+
+ .circleci/config.yml | 13 +++++++++++++
+ test/fuzzing/run-shape-fuzzer-tests.py | 31
+ +++++++++++++++++++++++++++++++
+ 2 files changed, 44 insertions(+)
+
+commit bccd09d6c7baa99fdaccb8c5b3ff7e1834edd3bf
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 09:06:42 2018 +0330
+
+ Minor, tweak spaces on hb-shape-fuzzer.cc
+
+ test/fuzzing/hb-shape-fuzzer.cc | 42
+ ++++++++++++++++++++---------------------
+ 1 file changed, 21 insertions(+), 21 deletions(-)
+
+commit fbf665b307c8cc9f16f5897671bfdd8719a195b5
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Oct 19 08:09:53 2018 +0330
+
+ [fuzz] Add more found cases (#1275)
+
+ ...clusterfuzz-testcase-hb-shape-fuzzer-5728971283496960 | Bin 0 ->
+ 101 bytes
+ ...terfuzz-testcase-minimized-hb-fuzzer-5713868010553344 | Bin 0 ->
+ 370 bytes
+ ...terfuzz-testcase-minimized-hb-fuzzer-6278851874258944 | Bin 0 ->
+ 598 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5649959857160192 | Bin 0 ->
+ 3608 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5664873493561344 | Bin 0 ->
+ 400 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5762953198960640 | Bin 0 ->
+ 62 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5764636557705216 | Bin 0 ->
+ 2184 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5690658895953920 | Bin 0 ->
+ 2735 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5695279609675776 | Bin 0 ->
+ 135 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5718215406125056 | Bin 0 ->
+ 107 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5743250149736448 | Bin 0 ->
+ 103 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5765071062958080 | Bin 0 ->
+ 329 bytes
+ ...ized-hb-subset-get-codepoints-fuzzer-5930139383758848 | Bin 0 ->
+ 9410 bytes
+ 13 files changed, 0 insertions(+), 0 deletions(-)
+
commit 3d9a0306ebb48706778fd2c487c3cacc7d508d6c
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Oct 18 05:58:17 2018 -0700
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
index 58e21a592fc..3d82e221c9e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
@@ -1,5 +1,18 @@
+Overview of changes leading to 2.0.1
+Friday, October 19, 2018
+====================================
+- Fix hb-version.h reported release version that went wrong (1.8.0)
+ with previous release.
+- Fix extrapolation in 'trak' table.
+- Fix hb-font infinite-recursion issue with some font funcs and
+ subclassed fonts.
+- Implement variation-kerning format in kerx table, although without
+ variation.
+- Fix return value of hb_map_is_empty().
+
+
Overview of changes leading to 2.0.0
-Wednesday, October 17, 2018
+Thursday, October 18, 2018
====================================
- Added AAT shaping support (morx/kerx/trak).
Automatically used if GSUB/GPOS are not available respectively.
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/README.python.md b/Build/source/libs/harfbuzz/harfbuzz-src/README.python.md
index 4c0ba9b2776..7cf091a09b1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/README.python.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/README.python.md
@@ -23,7 +23,7 @@ Then make sure you also have GI_TYPELIB_PATH pointing to the resulting
$prefix/lib/girepository-* directory.
Make sure you have pygobject installed. Then check that the following
-import works in your Python interpretter:
+import works in your Python interpreter:
```python
from gi.repository import HarfBuzz
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md b/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md
index 851d2bf3d7e..799eb631f87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md
@@ -1,6 +1,6 @@
For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
as a widely used and tested shaper is used as more-or-less OpenType reference
-implemenetation and that specially is important where OpenType specification
+implementation and that specially is important where OpenType specification
is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
steps are recommended:
@@ -27,8 +27,8 @@ steps are recommended:
Now you can use hb-shape using `wine winbuild/util/hb-shape.exe` but if you like to
to use the original Uniscribe,
-8. Bring a 32bit version of `usp10.dll` for youself from `C:\Windows\SysWOW64\usp10.dll` of your
- Windows installation (asuming you have a 64-bit installation, otherwise `C:\Windows\System32\usp10.dll`)
+8. Bring a 32bit version of `usp10.dll` for yourself from `C:\Windows\SysWOW64\usp10.dll` of your
+ Windows installation (assuming you have a 64-bit installation, otherwise `C:\Windows\System32\usp10.dll`)
that it is not a DirectWrite proxy ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
it is designed to work with DirectWrite which Wine can't work with its original one.
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
index d431871c0ac..4f5705e5345 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
@@ -27,7 +27,10 @@ HarfBuzz release walk-through checklist:
Otherwise, fix things and commit them separately before making release,
Note: Check src/hb-version.h and make sure the new version number is
there. Sometimes, it does not get updated. If that's the case,
- "touch configure.ac" and rebuild. TODO: debug.
+ "touch configure.ac" and rebuild. Also check that there is no hb-version.h
+ in your build/src file. Typically it will fail the distcheck if there is.
+ That's what happened to 2.0.0 going out with 1.8.0 hb-version.h... So, that's
+ a clue.
7. "make release-files". Enter your GPG password. This creates a sha256 hash
and signs it.
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
index a3ce8c1e8fb..ef32bd5102f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [2.0.0],
+ [2.0.1],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
index c74bab5d9e7..e0ea1c5de1f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
@@ -269,7 +269,7 @@ EXTRA_DIST += \
CLEANFILES += $(pkgconfig_DATA)
-DEF_FILES = harfbuzz.def harfbuzz-subset.def harfbuzz-icu.def
+DEF_FILES = harfbuzz.def harfbuzz-subset.def harfbuzz-icu.def harfbuzz-deprecated.def
if HAVE_GOBJECT
DEF_FILES += harfbuzz-gobject.def
endif
@@ -283,6 +283,8 @@ harfbuzz-icu.def: $(HB_ICU_headers)
$(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
harfbuzz-gobject.def: $(HB_GOBJECT_headers)
$(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
+harfbuzz-deprecated.def: $(srcdir)/hb-deprecated.h
+ $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
GENERATORS = \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-ankr-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-ankr-table.hh
index 2e3ed275851..5f7656d2a49 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-ankr-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-ankr-table.hh
@@ -63,8 +63,10 @@ struct ankr
unsigned int num_glyphs,
const char *end) const
{
- unsigned int offset = (this+lookupTable).get_value_or_null (glyph_id, num_glyphs);
- const GlyphAnchors &anchors = StructAtOffset<GlyphAnchors> (&(this+anchorData), offset);
+ const Offset<HBUINT16, false> *offset = (this+lookupTable).get_value (glyph_id, num_glyphs);
+ if (!offset)
+ return Null(Anchor);
+ const GlyphAnchors &anchors = StructAtOffset<GlyphAnchors> (&(this+anchorData), *offset);
/* TODO Use sanitizer; to avoid overflows and more. */
if (unlikely ((const char *) &anchors + anchors.get_size () > end))
return Null(Anchor);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-common.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-common.hh
index 89ed91f28a7..60724c180f6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-common.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-common.hh
@@ -247,6 +247,48 @@ struct LookupFormat8
};
template <typename T>
+struct LookupFormat10
+{
+ friend struct Lookup<T>;
+
+ private:
+ inline const typename T::type get_value_or_null (hb_codepoint_t glyph_id) const
+ {
+ if (!(firstGlyph <= glyph_id && glyph_id - firstGlyph < glyphCount))
+ return Null(T);
+
+ const HBUINT8 *p = &valueArrayZ[(glyph_id - firstGlyph) * valueSize];
+
+ unsigned int v = 0;
+ unsigned int count = valueSize;
+ for (unsigned int i = 0; i < count; i++)
+ v = (v << 8) | *p++;
+
+ return v;
+ }
+
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
+ TRACE_SANITIZE (this);
+ return_trace (c->check_struct (this) &&
+ valueSize <= 4 &&
+ valueArrayZ.sanitize (c, glyphCount * valueSize));
+ }
+
+ protected:
+ HBUINT16 format; /* Format identifier--format = 8 */
+ HBUINT16 valueSize; /* Byte size of each value. */
+ GlyphID firstGlyph; /* First glyph index included in the trimmed array. */
+ HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last
+ * glyph minus the value of firstGlyph plus 1). */
+ UnsizedArrayOf<HBUINT8>
+ valueArrayZ; /* The lookup values (indexed by the glyph index
+ * minus the value of firstGlyph). */
+ public:
+ DEFINE_SIZE_ARRAY (6, valueArrayZ);
+};
+
+template <typename T>
struct Lookup
{
inline const T* get_value (hb_codepoint_t glyph_id, unsigned int num_glyphs) const
@@ -261,10 +303,15 @@ struct Lookup
}
}
- inline const T& get_value_or_null (hb_codepoint_t glyph_id, unsigned int num_glyphs) const
+ inline const typename T::type get_value_or_null (hb_codepoint_t glyph_id, unsigned int num_glyphs) const
{
- const T *v = get_value (glyph_id, num_glyphs);
- return v ? *v : Null(T);
+ switch (u.format) {
+ /* Format 10 cannot return a pointer. */
+ case 10: return u.format10.get_value_or_null (glyph_id);
+ default:
+ const T *v = get_value (glyph_id, num_glyphs);
+ return v ? *v : Null(T);
+ }
}
inline bool sanitize (hb_sanitize_context_t *c) const
@@ -277,6 +324,7 @@ struct Lookup
case 4: return_trace (u.format4.sanitize (c));
case 6: return_trace (u.format6.sanitize (c));
case 8: return_trace (u.format8.sanitize (c));
+ case 10: return_trace (u.format10.sanitize (c));
default:return_trace (true);
}
}
@@ -289,6 +337,7 @@ struct Lookup
LookupFormat4<T> format4;
LookupFormat6<T> format6;
LookupFormat8<T> format8;
+ LookupFormat10<T> format10;
} u;
public:
DEFINE_SIZE_UNION (2, format);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-kerx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-kerx-table.hh
index c09a6d31075..6425780910b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-kerx-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-kerx-table.hh
@@ -45,6 +45,21 @@ namespace AAT {
using namespace OT;
+static inline int
+kerxTupleKern (int value,
+ unsigned int tupleCount,
+ const void *base,
+ hb_aat_apply_context_t *c)
+{
+ if (likely (!tupleCount)) return value;
+
+ unsigned int offset = value;
+ const FWORD *pv = &StructAtOffset<FWORD> (base, offset);
+ if (unlikely (!pv->sanitize (&c->sanitizer))) return 0;
+ return *pv;
+}
+
+
struct KerxSubTableHeader
{
inline bool sanitize (hb_sanitize_context_t *c) const
@@ -65,6 +80,7 @@ struct KerxSubTableFormat0
{
inline int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
{
+ if (header.tupleCount) return 0; /* TODO kerxTupleKern */
hb_glyph_pair_t pair = {left, right};
int i = pairs.bsearch (pair);
return i == -1 ? 0 : pairs[i].get_kerning ();
@@ -143,12 +159,12 @@ struct KerxSubTableFormat1
if (flags & Reset)
{
- depth = 0;
+ depth = 0;
}
if (flags & Push)
{
- if (likely (depth < ARRAY_LENGTH (stack)))
+ if (likely (depth < ARRAY_LENGTH (stack)))
stack[depth++] = buffer->idx;
else
depth = 0; /* Probably not what CoreText does, but better? */
@@ -157,14 +173,14 @@ struct KerxSubTableFormat1
if (entry->data.kernActionIndex != 0xFFFF)
{
const FWORD *actions = &kernAction[entry->data.kernActionIndex];
- if (!c->sanitizer.check_array (actions, depth))
+ if (!c->sanitizer.check_array (actions, depth))
{
depth = 0;
return false;
}
hb_mask_t kern_mask = c->plan->kern_mask;
- for (unsigned int i = 0; i < depth; i++)
+ for (unsigned int i = 0; i < depth; i++)
{
/* Apparently, when spec says "Each pops one glyph from the kerning stack
* and applies the kerning value to it.", it doesn't mean it in that order.
@@ -201,6 +217,9 @@ struct KerxSubTableFormat1
if (!c->plan->requested_kerning)
return false;
+ if (header.tupleCount)
+ return_trace (false); /* TODO kerxTupleKern */
+
driver_context_t dc (this, c);
StateTableDriver<EntryData> driver (machine, c->buffer, c->font->face);
@@ -236,7 +255,7 @@ struct KerxSubTableFormat2
unsigned int offset = l + r;
const FWORD *v = &StructAtOffset<FWORD> (&(this+array), offset);
if (unlikely (!v->sanitize (&c->sanitizer))) return 0;
- return *v;
+ return kerxTupleKern (*v, header.tupleCount, this, c);
}
inline bool apply (hb_aat_apply_context_t *c) const
@@ -482,7 +501,7 @@ struct KerxSubTableFormat6
if (unlikely (hb_unsigned_mul_overflows (offset, sizeof (FWORD32)))) return 0;
const FWORD32 *v = &StructAtOffset<FWORD32> (&(this+t.array), offset * sizeof (FWORD32));
if (unlikely (!v->sanitize (&c->sanitizer))) return 0;
- return *v;
+ return kerxTupleKern (*v, header.tupleCount, &(this+vector), c);
}
else
{
@@ -492,7 +511,7 @@ struct KerxSubTableFormat6
unsigned int offset = l + r;
const FWORD *v = &StructAtOffset<FWORD> (&(this+t.array), offset * sizeof (FWORD));
if (unlikely (!v->sanitize (&c->sanitizer))) return 0;
- return *v;
+ return kerxTupleKern (*v, header.tupleCount, &(this+vector), c);
}
}
@@ -523,7 +542,9 @@ struct KerxSubTableFormat6
u.s.rowIndexTable.sanitize (c, this) &&
u.s.columnIndexTable.sanitize (c, this) &&
c->check_range (this, u.s.array)
- ))));
+ )) &&
+ (header.tupleCount == 0 ||
+ c->check_range (this, vector))));
}
struct accelerator_t
@@ -559,8 +580,9 @@ struct KerxSubTableFormat6
LOffsetTo<UnsizedArrayOf<FWORD>, false> array;
} s;
} u;
+ LOffsetTo<UnsizedArrayOf<FWORD>, false> vector;
public:
- DEFINE_SIZE_STATIC (32);
+ DEFINE_SIZE_STATIC (36);
};
struct KerxTable
@@ -642,9 +664,8 @@ struct kerx
{
bool reverse;
- if (table->u.header.coverage & (KerxTable::CrossStream | KerxTable::Variation) ||
- table->u.header.tupleCount)
- goto skip; /* We do NOT handle cross-stream or variation kerning. */
+ if (table->u.header.coverage & (KerxTable::CrossStream))
+ goto skip; /* We do NOT handle cross-stream. */
if (HB_DIRECTION_IS_VERTICAL (c->buffer->props.direction) !=
bool (table->u.header.coverage & KerxTable::Vertical))
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh
index 4b4bc2ffeee..16729d16f5c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh
@@ -136,7 +136,7 @@ struct TrackData
/* TODO bfind() */
hb_array_t<Fixed> size_table ((base+sizeTable).arrayZ, sizes);
unsigned int size_index;
- for (size_index = 0; size_index < sizes; size_index++)
+ for (size_index = 0; size_index < sizes - 1; size_index++)
if (size_table[size_index].to_float () >= csspx)
break;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
index 4940e7fb561..ba48dd56106 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
@@ -45,7 +45,7 @@ _hb_options_init (void)
{
hb_options_union_t u;
u.i = 0;
- u.opts.initialized = 1;
+ u.opts.initialized = true;
const char *c = getenv ("HB_OPTIONS");
if (c)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc
index aa3921a3fdd..9f7745dbf88 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc
@@ -643,7 +643,7 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
CFStringRef string_ref = nullptr;
CTLineRef line = nullptr;
- if (0)
+ if (false)
{
resize_and_retry:
DEBUG_MSG (CORETEXT, buffer, "Buffer resize");
@@ -1054,7 +1054,7 @@ resize_and_retry:
*
* https://crbug.com/419769
*/
- if (0)
+ if (false)
{
/* Make sure all runs had the expected direction. */
bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc
index 7a430237c73..b6b668dd8bc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc
@@ -103,7 +103,7 @@ hb_font_get_nominal_glyph_default (hb_font_t *font,
hb_codepoint_t *glyph,
void *user_data HB_UNUSED)
{
- if (font->has_nominal_glyphs_func ())
+ if (font->has_nominal_glyphs_func_set ())
{
return font->get_nominal_glyphs (1, &unicode, 0, glyph, 0);
}
@@ -121,7 +121,7 @@ hb_font_get_nominal_glyphs_default (hb_font_t *font,
unsigned int glyph_stride,
void *user_data HB_UNUSED)
{
- if (font->has_nominal_glyph_func ())
+ if (font->has_nominal_glyph_func_set ())
{
for (unsigned int i = 0; i < count; i++)
{
@@ -176,7 +176,7 @@ hb_font_get_glyph_h_advance_default (hb_font_t *font,
hb_codepoint_t glyph,
void *user_data HB_UNUSED)
{
- if (font->has_glyph_h_advances_func ())
+ if (font->has_glyph_h_advances_func_set ())
{
hb_position_t ret;
font->get_glyph_h_advances (1, &glyph, 0, &ret, 0);
@@ -200,7 +200,7 @@ hb_font_get_glyph_v_advance_default (hb_font_t *font,
hb_codepoint_t glyph,
void *user_data HB_UNUSED)
{
- if (font->has_glyph_v_advances_func ())
+ if (font->has_glyph_v_advances_func_set ())
{
hb_position_t ret;
font->get_glyph_v_advances (1, &glyph, 0, &ret, 0);
@@ -220,7 +220,7 @@ hb_font_get_glyph_h_advances_default (hb_font_t* font,
unsigned int advance_stride,
void *user_data HB_UNUSED)
{
- if (font->has_glyph_h_advance_func ())
+ if (font->has_glyph_h_advance_func_set ())
{
for (unsigned int i = 0; i < count; i++)
{
@@ -252,7 +252,7 @@ hb_font_get_glyph_v_advances_default (hb_font_t* font,
unsigned int advance_stride,
void *user_data HB_UNUSED)
{
- if (font->has_glyph_v_advance_func ())
+ if (font->has_glyph_v_advance_func_set ())
{
for (unsigned int i = 0; i < count; i++)
{
@@ -688,9 +688,15 @@ HB_FONT_FUNCS_IMPLEMENT_CALLBACKS
#undef HB_FONT_FUNC_IMPLEMENT
bool
+hb_font_t::has_func_set (unsigned int i)
+{
+ return this->klass->get.array[i] != _hb_font_funcs_default.get.array[i];
+}
+
+bool
hb_font_t::has_func (unsigned int i)
{
- return (this->klass->get.array[i] != _hb_font_funcs_default.get.array[i]) ||
+ return has_func_set (i) ||
(parent && parent != &_hb_Null_hb_font_t && parent->has_func (i));
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.hh
index e10d56745fc..2df5e42ee6f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.hh
@@ -171,6 +171,7 @@ struct hb_font_t
/* Public getters */
HB_INTERNAL bool has_func (unsigned int i);
+ HB_INTERNAL bool has_func_set (unsigned int i);
/* has_* ... */
#define HB_FONT_FUNC_IMPLEMENT(name) \
@@ -180,6 +181,13 @@ struct hb_font_t
hb_font_funcs_t *funcs = this->klass; \
unsigned int i = offsetof (hb_font_funcs_t::get_t::get_funcs_t, name) / sizeof (funcs->get.array[0]); \
return has_func (i); \
+ } \
+ bool \
+ has_##name##_func_set (void) \
+ { \
+ hb_font_funcs_t *funcs = this->klass; \
+ unsigned int i = offsetof (hb_font_funcs_t::get_t::get_funcs_t, name) / sizeof (funcs->get.array[0]); \
+ return has_func_set (i); \
}
HB_FONT_FUNCS_IMPLEMENT_CALLBACKS
#undef HB_FONT_FUNC_IMPLEMENT
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-machinery.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-machinery.hh
index d836a94d629..ae34c92f458 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-machinery.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-machinery.hh
@@ -204,7 +204,7 @@ struct hb_dispatch_context_t
* The same argument can be made re GSUB/GPOS/GDEF, but there, the table
* structure is so complicated that by checking all offsets at sanitize() time,
* we make the code much simpler in other methods, as offsets and referenced
- * objectes do not need to be validated at each use site.
+ * objects do not need to be validated at each use site.
*/
/* This limits sanitizing time on really broken fonts. */
@@ -652,6 +652,7 @@ template <typename Type>
struct BEInt<Type, 1>
{
public:
+ typedef Type type;
inline void set (Type V)
{
v = V;
@@ -666,6 +667,7 @@ template <typename Type>
struct BEInt<Type, 2>
{
public:
+ typedef Type type;
inline void set (Type V)
{
v[0] = (V >> 8) & 0xFF;
@@ -682,6 +684,7 @@ template <typename Type>
struct BEInt<Type, 3>
{
public:
+ typedef Type type;
inline void set (Type V)
{
v[0] = (V >> 16) & 0xFF;
@@ -700,6 +703,7 @@ template <typename Type>
struct BEInt<Type, 4>
{
public:
+ typedef Type type;
inline void set (Type V)
{
v[0] = (V >> 24) & 0xFF;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh
index 21898a7a677..b55e3a9543e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh
@@ -172,7 +172,7 @@ struct hb_map_t
inline bool is_empty (void) const
{
- return population != 0;
+ return population == 0;
}
inline unsigned int get_population () const
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh
index bf01b3af741..87662265cf0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh
@@ -49,7 +49,7 @@ static inline Type const & Null (void) {
}
#define Null(Type) Null<Type>()
-/* Specializaitons for arbitrary-content Null objects expressed in bytes. */
+/* Specializations for arbitrary-content Null objects expressed in bytes. */
#define DECLARE_NULL_NAMESPACE_BYTES(Namespace, Type) \
} /* Close namespace. */ \
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]; \
@@ -62,7 +62,7 @@ static inline Type const & Null (void) {
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]
-/* Specializaitons for arbitrary-content Null objects expressed as struct initializer. */
+/* Specializations for arbitrary-content Null objects expressed as struct initializer. */
#define DECLARE_NULL_INSTANCE(Type) \
extern HB_INTERNAL const Type _hb_Null_##Type; \
template <> \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-file.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-file.hh
index 8772c79fa10..817791ab083 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-file.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-file.hh
@@ -160,7 +160,7 @@ typedef struct OffsetTable
memcpy (start, hb_blob_get_data (blob, nullptr), rec.length);
- /* 4-byte allignment. */
+ /* 4-byte alignment. */
c->align (4);
const char *end = (const char *) c->head;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh
index 9d2e1fa7c1d..08e72064af8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh
@@ -56,6 +56,7 @@ namespace OT {
template <typename Type, unsigned int Size>
struct IntType
{
+ typedef Type type;
inline void set (Type i) { v.set (i); }
inline operator Type(void) const { return v; }
inline bool operator == (const IntType<Type,Size> &o) const { return (Type) v == (Type) o.v; }
@@ -161,6 +162,8 @@ DECLARE_NULL_NAMESPACE_BYTES (OT, Index);
template <typename Type, bool has_null=true>
struct Offset : Type
{
+ typedef Type type;
+
inline bool is_null (void) const { return has_null && 0 == *this; }
inline void *serialize (hb_serialize_context_t *c, const void *base)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh
index 0c60a1304e2..98f6a079fac 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh
@@ -718,7 +718,7 @@ struct Lookup
return_trace (true);
}
- /* Older compileres need this to NOT be locally defined in a function. */
+ /* Older compilers need this to NOT be locally defined in a function. */
template <typename TSubTable>
struct SubTableSubsetWrapper
{
@@ -1475,7 +1475,7 @@ struct VarRegionAxis
struct VarRegionList
{
inline float evaluate (unsigned int region_index,
- int *coords, unsigned int coord_len) const
+ const int *coords, unsigned int coord_len) const
{
if (unlikely (region_index >= regionCount))
return 0.;
@@ -1520,7 +1520,7 @@ struct VarData
{ return itemCount * get_row_size (); }
inline float get_delta (unsigned int inner,
- int *coords, unsigned int coord_count,
+ const int *coords, unsigned int coord_count,
const VarRegionList &regions) const
{
if (unlikely (inner >= itemCount))
@@ -1573,7 +1573,7 @@ struct VarData
struct VariationStore
{
inline float get_delta (unsigned int outer, unsigned int inner,
- int *coords, unsigned int coord_count) const
+ const int *coords, unsigned int coord_count) const
{
if (unlikely (outer >= dataSets.len))
return 0.;
@@ -1584,7 +1584,7 @@ struct VariationStore
}
inline float get_delta (unsigned int index,
- int *coords, unsigned int coord_count) const
+ const int *coords, unsigned int coord_count) const
{
unsigned int outer = index >> 16;
unsigned int inner = index & 0xFFFF;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh
index cad99a3d62e..757090861b0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh
@@ -388,7 +388,7 @@ struct GDEF
{ return version.to_int () >= 0x00010003u ? this+varStore : Null(VariationStore); }
/* glyph_props is a 16-bit integer where the lower 8-bit have bits representing
- * glyph class and other bits, and high 8-bit gthe mark attachment type (if any).
+ * glyph class and other bits, and high 8-bit the mark attachment type (if any).
* Not to be confused with lookup_props which is very similar. */
inline unsigned int get_glyph_props (hb_codepoint_t glyph) const
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh
index 4f81b32785e..dad6c4ea93f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh
@@ -1164,7 +1164,7 @@ struct MarkBasePosFormat1
))
break;
skippy_iter.reject ();
- } while (1);
+ } while (true);
/* Checking that matched glyph is actually a base glyph by GDEF is too strong; disabled */
//if (!_hb_glyph_info_is_base_glyph (&buffer->info[skippy_iter.idx])) { return_trace (false); }
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh
index b664f15a617..2ce52a1b494 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh
@@ -103,7 +103,7 @@ struct SingleSubstFormat1
TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (*this))) return_trace (false);
if (unlikely (!coverage.serialize (c, this).serialize (c, glyphs, num_glyphs))) return_trace (false);
- deltaGlyphID.set (delta); /* TODO(serilaize) overflow? */
+ deltaGlyphID.set (delta); /* TODO(serialize) overflow? */
return_trace (true);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
index 695a5df9957..a4066265c77 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
@@ -199,8 +199,6 @@ struct hb_collect_glyphs_context_t :
after = old_after;
recursed_lookups->add (lookup_index);
-
- return;
}
hb_face_t *face;
@@ -582,7 +580,7 @@ struct hb_ot_apply_context_t :
add_in |= HB_OT_LAYOUT_GLYPH_PROPS_LIGATED;
/* In the only place that the MULTIPLIED bit is used, Uniscribe
* seems to only care about the "last" transformation between
- * Ligature and Multiple substitions. Ie. if you ligate, expand,
+ * Ligature and Multiple substitutions. Ie. if you ligate, expand,
* and ligate again, it forgives the multiplication and acts as
* if only ligation happened. As such, clear MULTIPLIED bit.
*/
@@ -903,7 +901,7 @@ static inline bool match_input (hb_ot_apply_context_t *c,
}
static inline bool ligate_input (hb_ot_apply_context_t *c,
unsigned int count, /* Including the first glyph */
- unsigned int match_positions[HB_MAX_CONTEXT_LENGTH], /* Including the first glyph */
+ const unsigned int match_positions[HB_MAX_CONTEXT_LENGTH], /* Including the first glyph */
unsigned int match_length,
hb_codepoint_t lig_glyph,
unsigned int total_component_count)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc
index 3d4e8b06612..4dba9c31a18 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc
@@ -201,7 +201,7 @@ subtag_matches (const char *lang_str,
if (!ISALNUM (s[strlen (subtag)]))
return true;
lang_str = s + strlen (subtag);
- } while (1);
+ } while (true);
}
static hb_bool_t
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-hvar-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-hvar-table.hh
index d87285b7f5d..66e086e1d95 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-hvar-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-hvar-table.hh
@@ -115,7 +115,7 @@ struct HVARVVAR
}
inline float get_advance_var (hb_codepoint_t glyph,
- int *coords, unsigned int coord_count) const
+ const int *coords, unsigned int coord_count) const
{
unsigned int varidx = (this+advMap).map (glyph);
return (this+varStore).get_delta (varidx, coords, coord_count);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-mvar-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-mvar-table.hh
index d60c6b910e9..5d6b559541e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-mvar-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-mvar-table.hh
@@ -72,7 +72,7 @@ struct MVAR
}
inline float get_var (hb_tag_t tag,
- int *coords, unsigned int coord_count) const
+ const int *coords, unsigned int coord_count) const
{
const VariationValueRecord *record;
record = (VariationValueRecord *) bsearch (&tag, valuesZ.arrayZ,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc
index b0cf1e92d1d..b2289f86994 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc
@@ -64,7 +64,7 @@ hb_shape_plan_plan (hb_shape_plan_t *shape_plan,
if (likely (!shaper_list)) {
for (unsigned int i = 0; i < HB_SHAPERS_COUNT; i++)
- if (0)
+ if (false)
;
#define HB_SHAPER_IMPLEMENT(shaper) \
else if (shapers[i].func == _hb_##shaper##_shape) \
@@ -73,7 +73,7 @@ hb_shape_plan_plan (hb_shape_plan_t *shape_plan,
#undef HB_SHAPER_IMPLEMENT
} else {
for (; *shaper_list; shaper_list++)
- if (0)
+ if (false)
;
#define HB_SHAPER_IMPLEMENT(shaper) \
else if (0 == strcmp (*shaper_list, #shaper)) \
@@ -346,7 +346,7 @@ hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
_hb_##shaper##_shape (shape_plan, font, buffer, features, num_features); \
} HB_STMT_END
- if (0)
+ if (false)
;
#define HB_SHAPER_IMPLEMENT(shaper) \
else if (shape_plan->shaper_func == _hb_##shaper##_shape) \
@@ -501,7 +501,7 @@ hb_shape_plan_create_cached2 (hb_face_t *face,
/* Choose shaper. Adapted from hb_shape_plan_plan().
* Must choose shaper exactly the same way as that function. */
for (const char * const *shaper_item = shaper_list; *shaper_item; shaper_item++)
- if (0)
+ if (false)
;
#define HB_SHAPER_IMPLEMENT(shaper) \
else if (0 == strcmp (*shaper_item, #shaper) && \
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index 367d0aaa2c3..792d125099a 100644
--- a/Build/source/libs/harfbuzz/version.ac
+++ b/Build/source/libs/harfbuzz/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [2.0.0])
+m4_define([harfbuzz_version], [2.0.1])