diff options
Diffstat (limited to 'Build/source')
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 ®ions) 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]) |