tdf#109142: Update to HarfBuzz 1.4.8
Should fix the Tibetan long U issue.
Also reverts this commit as depending on auto-detection for a required
feature is not a very good idea. The underlying issue is fixed upstream:
commit 5985bed1764358a515c378c80bb60b4d35bad6b1
Author: jan Iversen <jani@libreoffice.org>
Date: Mon Jun 12 14:51:42 2017 +0200
iOS, harfbuzz libcoretext not found
changed --with-libcoretext
from "yes" to "auto" for IOS and MACOSX
which seems to be a misguided attemp to fix the build breakage
introduced in:
commit b3559e5c6ce036b1a4fe96c0ffc935e0c94a7b10
Author: jan Iversen <jani@libreoffice.org>
Date: Sun Jun 11 19:35:53 2017 +0200
iOS, patch harfbuzz
Add support for arm64
Also had to drop ubsan.patch as it no longer applies, hopefully it is no
longer needed, otherwise it is always good idea to submit such patches
upstream.
Change-Id: I91643c542c0a5a00f36d5564052787eedef8c9cf
Reviewed-on: https://gerrit.libreoffice.org/41124
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 5aab2900dfdc9f12adda378470149670a2a069df)
Reviewed-on: https://gerrit.libreoffice.org/41210
diff --git a/download.lst b/download.lst
index ba60f47..0ffb0c2 100644
--- a/download.lst
+++ b/download.lst
@@ -81,8 +81,8 @@ export GPGME_SHA256SUM := 596097257c2ce22e747741f8ff3d7e24f6e26231fa198a41b2a072
export GPGME_TARBALL := gpgme-1.8.0.tar.bz2
export GRAPHITE_SHA256SUM := aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9
export GRAPHITE_TARBALL := graphite2-minimal-1.3.10.tgz
export HARFBUZZ_SHA256SUM := 8543a6372f08c5987c632dfaa86210c7edb3f43fbacd96095c609bc3539ce027
export HARFBUZZ_TARBALL := harfbuzz-1.3.2.tar.bz2
export HARFBUZZ_SHA256SUM := ccec4930ff0bb2d0c40aee203075447954b64a8c2695202413cc5e428c907131
export HARFBUZZ_TARBALL := harfbuzz-1.4.8.tar.bz2
export HSQLDB_SHA256SUM := d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
export HUNSPELL_SHA256SUM := 512e7d2ee69dad0b35ca011076405e56e0f10963a02d4859dbcc4faf53ca68e2
diff --git a/external/harfbuzz/ExternalProject_harfbuzz.mk b/external/harfbuzz/ExternalProject_harfbuzz.mk
index 070c58e..b5f48f3 100644
--- a/external/harfbuzz/ExternalProject_harfbuzz.mk
+++ b/external/harfbuzz/ExternalProject_harfbuzz.mk
@@ -36,6 +36,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) :
--with-fontconfig=no \
--with-cairo=no \
--with-glib=no \
--with-ucdn=no \
--with-graphite2=yes \
$(if $(filter IOS MACOSX,$(OS)),--with-coretext=yes) \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
diff --git a/external/harfbuzz/UnpackedTarball_harfbuzz.mk b/external/harfbuzz/UnpackedTarball_harfbuzz.mk
index 888251f..01a8891 100644
--- a/external/harfbuzz/UnpackedTarball_harfbuzz.mk
+++ b/external/harfbuzz/UnpackedTarball_harfbuzz.mk
@@ -14,7 +14,6 @@ $(eval $(call gb_UnpackedTarball_set_tarball,harfbuzz,$(HARFBUZZ_TARBALL),,harfb
$(eval $(call gb_UnpackedTarball_set_patchlevel,harfbuzz,0))
$(eval $(call gb_UnpackedTarball_add_patches,harfbuzz, \
external/harfbuzz/ubsan.patch \
external/harfbuzz/clang-cl.patch \
))
@@ -24,8 +23,4 @@ $(eval $(call gb_UnpackedTarball_add_patches,harfbuzz, \
))
endif
$(eval $(call gb_UnpackedTarball_add_patches,harfbuzz, \
external/harfbuzz/harfbuzz-ios.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/harfbuzz/ubsan.patch b/external/harfbuzz/ubsan.patch
deleted file mode 100644
index fde85cf..0000000
--- a/external/harfbuzz/ubsan.patch
+++ /dev/null
@@ -1,64 +0,0 @@
--- src/hb-ot-font.cc
+++ src/hb-ot-font.cc
@@ -125,7 +125,7 @@
if (glyph >= this->num_advances)
glyph = this->num_advances - 1;
- return this->table->longMetric[glyph].advance;
+ return static_cast<OT::LongMetric const *>(this->table->longMetric)[glyph].advance;
}
};
@@ -394,8 +394,9 @@
}
static void
-_hb_ot_font_destroy (hb_ot_font_t *ot_font)
+_hb_ot_font_destroy (void *ot_font_)
{
+ hb_ot_font_t *ot_font = static_cast<hb_ot_font_t *>(ot_font_);
ot_font->cmap.fini ();
ot_font->h_metrics.fini ();
ot_font->v_metrics.fini ();
--- src/hb-ot-map-private.hh
+++ src/hb-ot-map-private.hh
@@ -52,8 +52,11 @@
unsigned int needs_fallback : 1;
unsigned int auto_zwj : 1;
- static int cmp (const feature_map_t *a, const feature_map_t *b)
- { return a->tag < b->tag ? -1 : a->tag > b->tag ? 1 : 0; }
+ static int cmp (void const * a_, void const * b_) {
+ feature_map_t const * a = static_cast<feature_map_t const *>(a_);
+ feature_map_t const * b = static_cast<feature_map_t const *>(b_);
+ return a->tag < b->tag ? -1 : a->tag > b->tag ? 1 : 0;
+ }
};
struct lookup_map_t {
--- src/hb-ot-tag.cc
+++ src/hb-ot-tag.cc
@@ -778,9 +778,11 @@
};
static int
-lang_compare_first_component (const char *a,
- const char *b)
+lang_compare_first_component (void const * a_,
+ void const * b_)
{
+ char const * a = static_cast<char const *>(a_);
+ char const * b = static_cast<char const *>(b_);
unsigned int da, db;
const char *p;
--- src/hb-private.hh
+++ src/hb-private.hh
@@ -466,6 +466,7 @@
template <typename T>
inline const Type *bsearch (T *key) const
{
+ if (len == 0) return NULL;
return (const Type *) ::bsearch (key, array, len, sizeof (Type), (hb_compare_func_t) Type::cmp);
}