summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-07-17 22:07:21 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-07-17 22:07:21 +0000
commit770a5f6791fab72ee2f79c68d9b627b24bb35586 (patch)
tree0d8ee15eeb95f961e94ec4e78097a71eb2bed11d
parentbe2ba34847d97ae5b26b683e0eb0e53896e92180 (diff)
harfbuzz 1.8.4
git-svn-id: svn://tug.org/texlive/trunk@48216 c570f23f-e606-0410-a88d-b1316a301751
-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/ChangeLog184
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/NEWS7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/configure.ac2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh43
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh11
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh90
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc4
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
18 files changed, 318 insertions, 72 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 84b71201bb7..5971f192b43 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -24,7 +24,7 @@ gmp 6.1.2 - checked 16dec16
graphite2 1.3.11 - checked 05mar18
http://sourceforge.net/projects/silgraphite/files/graphite2/
-harfbuzz 1.8.3 - checked 13jul18
+harfbuzz 1.8.4 - checked 18jul18
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 6bc8166db22..f1b35ac9381 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import harfbuzz-1.8.4.
+ * version.ac: Adjusted.
+
2018-07-13 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import harfbuzz-1.8.3.
diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
index 58d99e16909..27b3c9eec01 100644
--- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog
+++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Imported harfbuzz-1.8.4 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
2018-07-13 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Imported harfbuzz-1.8.3 source tree from:
diff --git a/Build/source/libs/harfbuzz/TLpatches/TL-Changes b/Build/source/libs/harfbuzz/TLpatches/TL-Changes
index b00494e006b..2f56c6d39d5 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-1.8.3/ tree as obtained from:
+Changes applied to the harfbuzz-1.8.4/ 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 adbcfb220bf..6e3413d3495 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) 1.8.3.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 1.8.4.
#
# 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='1.8.3'
-PACKAGE_STRING='harfbuzz (TeX Live) 1.8.3'
+PACKAGE_VERSION='1.8.4'
+PACKAGE_STRING='harfbuzz (TeX Live) 1.8.4'
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) 1.8.3 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 1.8.4 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) 1.8.3:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.8.4:";;
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 1.8.3
+harfbuzz (TeX Live) configure 1.8.4
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 1.8.3, which was
+It was created by harfbuzz (TeX Live) $as_me 1.8.4, 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='1.8.3'
+ VERSION='1.8.4'
# Some tools Automake needs.
@@ -4248,8 +4248,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=1
HB_VERSION_MINOR=8
-HB_VERSION_MICRO=3
-HB_VERSION=1.8.3
+HB_VERSION_MICRO=4
+HB_VERSION=1.8.4
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -8140,7 +8140,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 1.8.3, which was
+This file was extended by harfbuzz (TeX Live) $as_me 1.8.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8206,7 +8206,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 1.8.3
+harfbuzz (TeX Live) config.status 1.8.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
index e5c02c5305e..ac451d81213 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
@@ -1,3 +1,187 @@
+commit 04b7b81bcbf19cb85d06d930192d6591ba45ef72
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jul 17 10:57:01 2018 +0200
+
+ Reland "Implement C++11-style GCC builtin atomic ops"
+
+ Fixed the crasher in it.
+
+ src/hb-atomic-private.hh | 22 +++++++++++++++++++---
+ src/hb-object-private.hh | 2 +-
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+commit 019d18e9ae643134bfc3861be65ac618a5892c92
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jul 17 10:59:19 2018 +0200
+
+ Minor
+
+ src/Makefile.am | 1 +
+ test/api/Makefile.am | 2 ++
+ 2 files changed, 3 insertions(+)
+
+commit 3edef5a19b5c0f30381ae6fe01c3370ded37f6ca
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jul 17 10:50:01 2018 +0200
+
+ Revert "Implement C++11-style GCC builtin atomic ops"
+
+ This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa.
+
+ Is crashing. Oops.
+
+ src/hb-atomic-private.hh | 22 +++-------------------
+ src/hb-object-private.hh | 2 +-
+ 2 files changed, 4 insertions(+), 20 deletions(-)
+
+commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jul 16 17:58:02 2018 +0200
+
+ Implement C++11-style GCC builtin atomic ops
+
+ Hopefully fixes bots.
+
+ src/hb-atomic-private.hh | 22 +++++++++++++++++++---
+ src/hb-object-private.hh | 2 +-
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+commit 804b59cf4901d471253016e0cbf82cc1bbbc1d15
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jul 16 15:44:58 2018 +0200
+
+ Relax C++11 atomic ops memory order to acquire-release
+
+ src/hb-atomic-private.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit bda242409fc0cbb79a0ff00eba9856c4b0a9c7a1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jul 16 15:41:09 2018 +0200
+
+ Implement C++11 <atomic> operations
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/345
+
+ src/hb-atomic-private.hh | 27 ++++++++++++++++++++++++---
+ src/hb-open-type-private.hh | 2 +-
+ src/hb-ot-shape-complex-arabic.cc | 2 +-
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+commit 524411224054b23bab4adad7343314df45c9c183
+Merge: 2aae617a 269eb456
+Author: Cosimo Lupo <cosimo@anthrotype.com>
+Date: Mon Jul 16 14:42:43 2018 +0200
+
+ Merge pull request #1094 from anthrotype/fix-appveyor-msys2
+
+ appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
+
+commit 269eb45650be66901627da7f1014339065a948a5
+Author: Cosimo Lupo <cosimo@anthrotype.com>
+Date: Mon Jul 16 14:14:42 2018 +0200
+
+ appveyor.yml: try only updating msys2 core, not the rest of the
+ packages
+
+ maybe it'll get a bit faster
+
+ appveyor.yml | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 3ab52c6cb5c405366af804d278216e2d02a39ecb
+Author: Cosimo Lupo <cosimo@anthrotype.com>
+Date: Mon Jul 16 12:57:27 2018 +0200
+
+ appveyor.yml: pass --needed option to pacman
+
+ so it won't attempt reinstalling packages which are already installed
+
+ appveyor.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5631d70d36aa7952d343ea794bd5169a730706ae
+Author: Cosimo Lupo <cosimo@anthrotype.com>
+Date: Mon Jul 16 12:41:59 2018 +0200
+
+ appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
+
+ https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903
+ https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71
+
+ appveyor.yml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 2aae617a84f47836f10efd30df43e13e3a9447e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 17:27:23 2018 +0200
+
+ Move _hb_alignof later again
+
+ It uses constexpr...
+
+ src/hb-private.hh | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+commit f3a74c16ecafdca135a647ebe85117c35c1ef585
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 17:23:53 2018 +0200
+
+ Make hb_vector_t 8 bytes smaller
+
+ src/hb-dsalgs.hh | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+commit 44999f8b758374015f5d48c83f9adcb464607c2f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 17:00:59 2018 +0200
+
+ Align NullPool and CrapPool to HB_VECTOR_SIZE
+
+ src/hb-dsalgs.hh | 3 +--
+ src/hb-private.hh | 64
+ ++++++++++++++++++++++++++++++++-----------------------
+ src/hb-static.cc | 4 ++--
+ 3 files changed, 40 insertions(+), 31 deletions(-)
+
+commit 20a318d06acaabdee0090339dfa621aab46f1441
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 17:00:13 2018 +0200
+
+ Fix return type of alignof() fallback
+
+ src/hb-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 58cb4d9f73f1292454e3673d5e7ae5a58a566522
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 16:44:21 2018 +0200
+
+ Minor
+
+ test/api/test-ot-math.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 7796857c93b779e3c93eedd1cceb217d691dfd81
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 15:27:37 2018 +0200
+
+ Minor
+
+ RELEASING.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2b76767bf572364d3d647cdd139f2044a7ad06b2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 11 15:27:13 2018 +0200
+
+ 1.8.3
+
+ NEWS | 8 ++++++++
+ configure.ac | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
commit 718dfd4189275b1e4233dc7c12ab457352fccfcb
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jul 10 16:34:31 2018 +0200
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
index 9031766dba1..fce43a3648e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
@@ -1,3 +1,10 @@
+Overview of changes leading to 1.8.4
+Tuesday, July 17, 2018
+====================================
+- Fix build on non-C++11.
+- Use C++-style GCC atomics and C++11 atomics.
+
+
Overview of changes leading to 1.8.3
Wednesday, July 11, 2018
====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
index 0aef610b6bf..c57f8466a2d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
@@ -29,7 +29,7 @@ HarfBuzz release walk-through checklist:
7. "make release-files". Enter your GPG password. This creates a sha256 hash
and signs it.
-8. Now that you have release files built, commit NEWS and configure.ac changes,
+8. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
as well as any REPLACEME changes you made. The commit message is simply the
release number. Eg. "1.4.7"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
index b6fcfc02a21..0dd70e68f8d 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],
- [1.8.3],
+ [1.8.4],
[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 6dfec3bfa70..66594bbcd19 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
@@ -14,6 +14,7 @@ check_PROGRAMS =
# Convenience targets:
lib: $(BUILT_SOURCES) libharfbuzz.la libharfbuzz-subset.la
+libs: $(BUILT_SOURCES) $(lib_LTLIBRARIES)
fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la libharfbuzz-subset-fuzzing.la
lib_LTLIBRARIES = libharfbuzz.la
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh
index 12caacaaba7..02cf6f38811 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh
@@ -46,6 +46,41 @@
/* Defined externally, i.e. in config.h; must have typedef'ed hb_atomic_int_impl_t as well. */
+#elif !defined(HB_NO_MT) && defined(__ATOMIC_ACQUIRE)
+
+/* C++11-style GCC primitives. */
+
+typedef int hb_atomic_int_impl_t;
+#define hb_atomic_int_impl_add(AI, V) __atomic_fetch_add (&(AI), (V), __ATOMIC_ACQ_REL)
+
+#define hb_atomic_ptr_impl_get(P) __atomic_load_n ((P), __ATOMIC_ACQUIRE)
+static inline bool
+_hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N)
+{
+ const void *O = O_; // Need lvalue
+ return __atomic_compare_exchange_n ((void **) P, (void **) &O, (void *) N, true, __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);
+}
+#define hb_atomic_ptr_impl_cmpexch(P,O,N) (_hb_atomic_ptr_impl_cmplexch ((const void **) (P), (O), (N)))
+
+#elif !defined(HB_NO_MT) && __cplusplus >= 201103L
+
+/* C++11 atomics. */
+
+#include <atomic>
+
+typedef int hb_atomic_int_impl_t;
+#define hb_atomic_int_impl_add(AI, V) (reinterpret_cast<std::atomic<int> *> (&AI)->fetch_add ((V), std::memory_order_acq_rel))
+
+#define hb_atomic_ptr_impl_get(P) (reinterpret_cast<std::atomic<void*> *> (P)->load (std::memory_order_acquire))
+static inline bool
+_hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N)
+{
+ const void *O = O_; // Need lvalue
+ return reinterpret_cast<std::atomic<const void*> *> (P)->compare_exchange_weak (O, N, std::memory_order_acq_rel, std::memory_order_relaxed);
+}
+#define hb_atomic_ptr_impl_cmpexch(P,O,N) (_hb_atomic_ptr_impl_cmplexch ((const void **) (P), (O), (N)))
+
+
#elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__))
#include <windows.h>
@@ -162,16 +197,18 @@ typedef int hb_atomic_int_impl_t;
#endif
+#ifndef HB_ATOMIC_INT_INIT
#define HB_ATOMIC_INT_INIT(V) {V}
+#endif
struct hb_atomic_int_t
{
- hb_atomic_int_impl_t v;
+ mutable hb_atomic_int_impl_t v;
inline void set_unsafe (int v_) { v = v_; }
inline int get_unsafe (void) const { return v; }
- inline int inc (void) { return hb_atomic_int_impl_add (const_cast<hb_atomic_int_impl_t &> (v), 1); }
- inline int dec (void) { return hb_atomic_int_impl_add (const_cast<hb_atomic_int_impl_t &> (v), -1); }
+ inline int inc (void) { return hb_atomic_int_impl_add (v, 1); }
+ inline int dec (void) { return hb_atomic_int_impl_add (v, -1); }
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh
index 6a8ddaa995b..fc7d1f0a904 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh
@@ -450,8 +450,7 @@ template <typename Type, unsigned int StaticSize=8>
struct hb_vector_t
{
unsigned int len;
- unsigned int allocated;
- bool successful;
+ unsigned int allocated; /* == 0 means allocation failed. */
Type *arrayZ;
Type static_array[StaticSize];
@@ -459,7 +458,6 @@ struct hb_vector_t
{
len = 0;
allocated = ARRAY_LENGTH (static_array);
- successful = true;
arrayZ = static_array;
}
@@ -492,7 +490,7 @@ struct hb_vector_t
/* Allocate for size but don't adjust len. */
inline bool alloc (unsigned int size)
{
- if (unlikely (!successful))
+ if (unlikely (!allocated))
return false;
if (likely (size <= allocated))
@@ -521,7 +519,7 @@ struct hb_vector_t
if (unlikely (!new_array))
{
- successful = false;
+ allocated = 0;
return false;
}
@@ -854,8 +852,7 @@ struct hb_vector_size_t
union {
elt_t v[byte_size / sizeof (elt_t)];
#if HB_VECTOR_SIZE
- typedef unsigned long vec_t __attribute__((vector_size (HB_VECTOR_SIZE / 8)));
- vec_t vec[byte_size / sizeof (vec_t)];
+ hb_vector_size_impl_t vec[byte_size / sizeof (hb_vector_size_impl_t)];
#endif
} u;
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh
index fcdc9256d9b..8199c4b8407 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh
@@ -94,7 +94,7 @@ struct hb_user_data_array_t
struct hb_object_header_t
{
hb_reference_count_t ref_count;
- hb_user_data_array_t *user_data;
+ mutable hb_user_data_array_t *user_data;
#define HB_OBJECT_HEADER_STATIC {HB_REFERENCE_COUNT_INIT, nullptr}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh
index 207f6e0e204..f6113c33aaf 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh
@@ -1247,7 +1247,7 @@ struct hb_lazy_loader_t
private:
hb_face_t *face;
- T *instance;
+ mutable T *instance;
};
/* Logic is shared between hb_lazy_loader_t and hb_table_lazy_loader_t */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc
index b1cba1c711d..0c4948dfdf4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc
@@ -250,7 +250,7 @@ struct arabic_shape_plan_t
* mask_array[NONE] == 0. */
hb_mask_t mask_array[ARABIC_NUM_FEATURES + 1];
- arabic_fallback_plan_t *fallback_plan;
+ mutable arabic_fallback_plan_t *fallback_plan;
unsigned int do_fallback : 1;
unsigned int has_stch : 1;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
index ff339df4dca..ddb256f80d5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
@@ -84,19 +84,9 @@ extern "C" int hb_memalign_impl(void **memptr, size_t alignment, size_t size);
#endif
-/* Compiler attributes */
-
-
-template <typename T>
-struct _hb_alignof
-{
- struct s
- {
- char c;
- T t;
- };
- static constexpr unsigned int value = offsetof (s, t);
-};
+/*
+ * Compiler attributes
+ * */
#if __cplusplus < 201103L
@@ -122,6 +112,16 @@ struct _hb_alignof
#define thread_local
#endif
+template <typename T>
+struct _hb_alignof
+{
+ struct s
+ {
+ char c;
+ T t;
+ };
+ static constexpr size_t value = offsetof (s, t);
+};
#ifndef alignof
#define alignof(x) (_hb_alignof<x>::value)
#endif // alignof
@@ -334,6 +334,39 @@ static_assert ((sizeof (hb_var_int_t) == 4), "");
TypeName(const TypeName&); \
void operator=(const TypeName&)
+
+/*
+ * Compiler-assisted vectorization parameters.
+ */
+
+/*
+ * Disable vectorization for now. To correctly use them, we should
+ * use posix_memalign() to allocate in hb_vector_t. Otherwise, can
+ * cause misaligned access.
+ *
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=860184
+ */
+#if !defined(HB_VECTOR_SIZE)
+# define HB_VECTOR_SIZE 0
+#endif
+
+/* The `vector_size' attribute was introduced in gcc 3.1. */
+#if !defined(HB_VECTOR_SIZE)
+# if defined( __GNUC__ ) && ( __GNUC__ >= 4 )
+# define HB_VECTOR_SIZE 128
+# else
+# define HB_VECTOR_SIZE 0
+# endif
+#endif
+static_assert (0 == (HB_VECTOR_SIZE & (HB_VECTOR_SIZE - 1)), "HB_VECTOR_SIZE is not power of 2.");
+static_assert (0 == (HB_VECTOR_SIZE % 64), "HB_VECTOR_SIZE is not multiple of 64.");
+#if HB_VECTOR_SIZE
+typedef uint64_t hb_vector_size_impl_t __attribute__((vector_size (HB_VECTOR_SIZE / 8)));
+#else
+typedef uint64_t hb_vector_size_impl_t;
+#endif
+
+
/*
* Static pools
*/
@@ -341,18 +374,18 @@ static_assert ((sizeof (hb_var_int_t) == 4), "");
/* Global nul-content Null pool. Enlarge as necessary. */
#define HB_NULL_POOL_SIZE 264
-static_assert (HB_NULL_POOL_SIZE % sizeof (void *) == 0, "Align HB_NULL_POOL_SIZE.");
#ifdef HB_NO_VISIBILITY
static
#else
extern HB_INTERNAL
#endif
-void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)]
+hb_vector_size_impl_t const _hb_NullPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)]
#ifdef HB_NO_VISIBILITY
= {}
#endif
;
+
/* Generic nul-content Null objects. */
template <typename Type>
static inline Type const & Null (void) {
@@ -385,11 +418,12 @@ static
#else
extern HB_INTERNAL
#endif
-/*thread_local*/ void * _hb_CrapPool[HB_NULL_POOL_SIZE / sizeof (void *)]
+/*thread_local*/ hb_vector_size_impl_t _hb_CrapPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)]
#ifdef HB_NO_VISIBILITY
= {}
#endif
;
+
/* CRAP pool: Common Region for Access Protection. */
template <typename Type>
static inline Type& Crap (void) {
@@ -503,30 +537,6 @@ hb_in_ranges (T u, T lo1, T hi1, T lo2, T hi2, T lo3, T hi3)
#define FLAG_RANGE(x,y) (ASSERT_STATIC_EXPR_ZERO ((x) < (y)) + FLAG(y+1) - FLAG(x))
-
-/* Compiler-assisted vectorization. */
-
-/*
- * Disable vectorization for now. To correctly use them, we should
- * use posix_memalign() to allocate them. Otherwise, can cause
- * misaligned access.
- *
- * https://bugs.chromium.org/p/chromium/issues/detail?id=860184
- */
-#if !defined(HB_VECTOR_SIZE)
-# define HB_VECTOR_SIZE 0
-#endif
-
-/* The `vector_size' attribute was introduced in gcc 3.1. */
-#if !defined(HB_VECTOR_SIZE)
-# if defined( __GNUC__ ) && ( __GNUC__ >= 4 )
-# define HB_VECTOR_SIZE 128
-# else
-# define HB_VECTOR_SIZE 0
-# endif
-#endif
-
-
/* Global runtime options. */
struct hb_options_t
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc
index e26e5c80154..ee17cd3481c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc
@@ -27,6 +27,6 @@
#include "hb-private.hh"
#ifndef HB_NO_VISIBILITY
-void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)] = {};
-/*thread_local*/ void * _hb_CrapPool[HB_NULL_POOL_SIZE / sizeof (void *)] = {};
+hb_vector_size_impl_t const _hb_NullPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)] = {};
+/*thread_local*/ hb_vector_size_impl_t _hb_CrapPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)] = {};
#endif
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index f9ad64a1155..d3f0c25996f 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], [1.8.3])
+m4_define([harfbuzz_version], [1.8.4])