Behdad Esfahbod [Mon, 10 Sep 2018 16:19:37 +0000 (18:19 +0200)]
Unbreak HB_OPTIONS
Fixes https://github.com/harfbuzz/harfbuzz/issues/1154
Behdad Esfahbod [Mon, 10 Sep 2018 15:38:19 +0000 (17:38 +0200)]
[indic] Do NOT allow matra after Halant,ZWJ
Fixes https://github.com/harfbuzz/harfbuzz/issues/556
Devanagari regresses 12 tests, and Gujarati 2. See:
https://github.com/harfbuzz/harfbuzz/issues/556#issuecomment-
419957472
New numbers:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707299 out of 707394 tests passed. 95 failed (0.0134296%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.
00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.
00185457%)
Behdad Esfahbod [Mon, 10 Sep 2018 13:45:32 +0000 (15:45 +0200)]
Fix sanitize or Context Rule
Fixes https://github.com/harfbuzz/harfbuzz/issues/1110
Behdad Esfahbod [Mon, 10 Sep 2018 11:56:28 +0000 (13:56 +0200)]
Revert "[subset] Disable GSUB/GPOS subsetting for now"
This reverts commit
616fd34a69bb69bc35c7e4ea939e71c3ea2e92cb.
Behdad Esfahbod [Mon, 10 Sep 2018 09:37:24 +0000 (11:37 +0200)]
1.9.0
Behdad Esfahbod [Mon, 10 Sep 2018 09:19:49 +0000 (11:19 +0200)]
[subset] Disable GSUB/GPOS subsetting for now
So I can get a release out. I haven't debugged those yet, and they
are producing bad tables.
Behdad Esfahbod [Mon, 10 Sep 2018 09:05:33 +0000 (11:05 +0200)]
[atomic] Fix pointer type passed to InterlockedExchangeAdd()
John Emmas reported on mailing list that build with MSVC is failing.
Not sure why bots don't catch it, but this should fix.
Behdad Esfahbod [Fri, 7 Sep 2018 19:02:57 +0000 (15:02 -0400)]
Use enum instead of "static const" in class scope
Technically, static const needs an out-of-class definition. Eg:
CXXLD libharfbuzz-subset.la
Undefined symbols for architecture x86_64:
"OT::FeatureVariationRecord::min_size", referenced from:
bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::Record<OT::LangSys>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::IntType<unsigned short, 2u>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[4]: *** [libharfbuzz-subset.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Exited with code 2
Behdad Esfahbod [Fri, 7 Sep 2018 14:46:13 +0000 (10:46 -0400)]
Try fixing bots
Behdad Esfahbod [Fri, 7 Sep 2018 14:24:22 +0000 (10:24 -0400)]
[subset] Fix div-by-zero
Garret Rieger [Thu, 6 Sep 2018 01:04:52 +0000 (18:04 -0700)]
[subset] Fix hdmx subsetted size calculation.
Behdad Esfahbod [Thu, 6 Sep 2018 02:29:42 +0000 (19:29 -0700)]
Fix older compilers re '>>' at nested template declarations
Behdad Esfahbod [Wed, 5 Sep 2018 23:24:28 +0000 (16:24 -0700)]
[subset] Hook up GSUB/GPOS, but still disabled
They are still in the drop list.
Behdad Esfahbod [Tue, 4 Sep 2018 03:50:11 +0000 (20:50 -0700)]
[subset] Implement subsetting of SingleSubst
Behdad Esfahbod [Tue, 4 Sep 2018 01:54:32 +0000 (18:54 -0700)]
[subset] Keep glyph set in plan
Should remove the vector version at some point...
Behdad Esfahbod [Tue, 4 Sep 2018 01:23:23 +0000 (18:23 -0700)]
[subset] Towards subsetting SingleSubstFormat1
Why does subset plan not have a hb_set_t of glyphs?
Behdad Esfahbod [Tue, 4 Sep 2018 00:33:34 +0000 (17:33 -0700)]
[subset] Wire up subset() call down to subtables
Behdad Esfahbod [Tue, 4 Sep 2018 00:16:09 +0000 (17:16 -0700)]
Templatize Lookup::sanitize()
Behdad Esfahbod [Mon, 3 Sep 2018 23:53:03 +0000 (16:53 -0700)]
[subset] More
Behdad Esfahbod [Mon, 3 Sep 2018 23:41:28 +0000 (16:41 -0700)]
Templatize GSUBGPOS::sanitize()
Behdad Esfahbod [Mon, 3 Sep 2018 23:37:17 +0000 (16:37 -0700)]
[subset] Fix serialize_subset() calls
Ouch.
Behdad Esfahbod [Mon, 3 Sep 2018 02:47:50 +0000 (19:47 -0700)]
Add intersects() method to GSUB/GPOS lookups
Behdad Esfahbod [Mon, 3 Sep 2018 00:00:27 +0000 (17:00 -0700)]
[subset] Minor
Remove Lookup::subset().
Behdad Esfahbod [Sun, 2 Sep 2018 01:34:50 +0000 (18:34 -0700)]
[subset] Towards GSUB/GPOS subsetting
Add subset() call for GSUBGPOS struct and its dependencies.
Not hooked up anywhere.
Behdad Esfahbod [Sat, 1 Sep 2018 00:11:08 +0000 (17:11 -0700)]
[serialize] Add reset()
Behdad Esfahbod [Fri, 31 Aug 2018 23:46:35 +0000 (16:46 -0700)]
[subset] De-templatize hb_subset_context_t
We're going to (finally) use virtual methods for hb_serialize_context_t
customization, so don't need to carry a Serializer template variable
around... Simplifies code.
Behdad Esfahbod [Fri, 31 Aug 2018 23:38:04 +0000 (16:38 -0700)]
[serialize] Add a couple small methods
Behdad Esfahbod [Fri, 31 Aug 2018 23:31:00 +0000 (16:31 -0700)]
[subset] Add hb_subset_context_t<>
Behdad Esfahbod [Fri, 31 Aug 2018 20:25:19 +0000 (13:25 -0700)]
[subset] Add hb-subset-input.hh and make hb-subset.hh toplevel include
Behdad Esfahbod [Fri, 31 Aug 2018 20:00:57 +0000 (13:00 -0700)]
Minor
Behdad Esfahbod [Thu, 30 Aug 2018 01:28:39 +0000 (18:28 -0700)]
Shuffle
Behdad Esfahbod [Thu, 30 Aug 2018 01:24:03 +0000 (18:24 -0700)]
[subset] Clean up hb_subset_input_t API
Behdad Esfahbod [Thu, 30 Aug 2018 01:13:07 +0000 (18:13 -0700)]
[subset] Bail if subsetting a table failed
Behdad Esfahbod [Thu, 30 Aug 2018 01:09:55 +0000 (18:09 -0700)]
[subset] Remove unused hb_subset_profile_t
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t. So, for now, keep everything there.
Behdad Esfahbod [Wed, 29 Aug 2018 23:38:04 +0000 (16:38 -0700)]
[ot-font] Clean up cmap with gid=0
Fixes https://github.com/harfbuzz/harfbuzz/issues/1145
Ross Burton [Wed, 29 Aug 2018 21:37:39 +0000 (22:37 +0100)]
Delete pkg.m4
pkg.m4 is provided by pkg-config, which is a requirement to build, and this copy is ancient. Delete it to avoid it being used instead of the host copy.
Behdad Esfahbod [Wed, 29 Aug 2018 01:27:41 +0000 (18:27 -0700)]
Don't declare extern symbols as inline
clang -O3 was completely removing _get_gdef(), causing link
failure when needed from another compilation unit. Surprisingly,
"extern inline" didn't fix it.
Behdad Esfahbod [Wed, 29 Aug 2018 01:18:02 +0000 (18:18 -0700)]
Add explicit to hb_auto_t 1param constructors
Behdad Esfahbod [Wed, 29 Aug 2018 00:22:38 +0000 (17:22 -0700)]
Fix distcheck
Behdad Esfahbod [Tue, 28 Aug 2018 18:02:00 +0000 (11:02 -0700)]
Explicitly pass reference in hb_auto_t constructor
Fixes clang bots as well as fuzzer issue.
Behdad Esfahbod [Sun, 26 Aug 2018 22:18:46 +0000 (15:18 -0700)]
[ot-face] Remove tables_t. The face_data_t is what tables_t was
Behdad Esfahbod [Sun, 26 Aug 2018 22:11:24 +0000 (15:11 -0700)]
Free up hb-ot-face.hh from includes
There might be a better way to do this, but I couldn't find...
Behdad Esfahbod [Sun, 26 Aug 2018 16:33:01 +0000 (09:33 -0700)]
[face] Use saved cmap in collect_unicodes() APIs
Behdad Esfahbod [Sun, 26 Aug 2018 16:19:20 +0000 (09:19 -0700)]
[OT] Move code around
Behdad Esfahbod [Sun, 26 Aug 2018 16:12:25 +0000 (09:12 -0700)]
[OT] Use relaxed ops for recursing into GSUB/GPOS lookups again
Behdad Esfahbod [Sun, 26 Aug 2018 16:03:31 +0000 (09:03 -0700)]
[GDEF] Move code around
Behdad Esfahbod [Sun, 26 Aug 2018 08:30:52 +0000 (01:30 -0700)]
Add template keyword
I swear I have no idea why this is needed, but it is...
Behdad Esfahbod [Sun, 26 Aug 2018 08:29:30 +0000 (01:29 -0700)]
Fixup
Behdad Esfahbod [Sun, 26 Aug 2018 08:25:54 +0000 (01:25 -0700)]
[ot-face] Port GDEF to unified table accelerator model as well
Behdad Esfahbod [Sun, 26 Aug 2018 08:15:47 +0000 (01:15 -0700)]
[ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework
Behdad Esfahbod [Sun, 26 Aug 2018 07:47:55 +0000 (00:47 -0700)]
WIP
Behdad Esfahbod [Sun, 26 Aug 2018 07:21:29 +0000 (00:21 -0700)]
[ot-face] Unify accelerators and tables
Behdad Esfahbod [Sun, 26 Aug 2018 07:07:12 +0000 (00:07 -0700)]
Minor
Behdad Esfahbod [Sun, 26 Aug 2018 07:06:12 +0000 (00:06 -0700)]
[ot-font] Rename
Behdad Esfahbod [Sun, 26 Aug 2018 06:54:06 +0000 (23:54 -0700)]
[ot-font] Cache tables on face, not font
Behdad Esfahbod [Sun, 26 Aug 2018 06:27:45 +0000 (23:27 -0700)]
[ot-font] Use init0
Behdad Esfahbod [Sun, 26 Aug 2018 06:19:34 +0000 (23:19 -0700)]
[ot-font] Make everything (cmap/metrics) lazy
Behdad Esfahbod [Sun, 26 Aug 2018 06:15:52 +0000 (23:15 -0700)]
[ot-font] Fallback vertical advance to UPEM
Used to be ascent+descent. Whatever. This is more convenient for
upcoming changes.
Behdad Esfahbod [Sun, 26 Aug 2018 06:06:37 +0000 (23:06 -0700)]
Add hb-ot-face.cc/hh
Behdad Esfahbod [Sun, 26 Aug 2018 05:44:39 +0000 (22:44 -0700)]
[face] Introduce character-map API
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
Behdad Esfahbod [Sun, 26 Aug 2018 05:39:17 +0000 (22:39 -0700)]
Minor
Behdad Esfahbod [Sun, 26 Aug 2018 05:36:36 +0000 (22:36 -0700)]
Rename hb-*private.hh to hb-*.hh
Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod [Sun, 26 Aug 2018 05:07:17 +0000 (22:07 -0700)]
[unicode] Add HB_UNICODE_MAX
New API:
HB_UNICODE_MAX
Behdad Esfahbod [Sun, 26 Aug 2018 05:04:39 +0000 (22:04 -0700)]
[cmap] More hb_auto_t<>(...)
Behdad Esfahbod [Sun, 26 Aug 2018 04:23:43 +0000 (21:23 -0700)]
[cmap] Fix skipping gid0 in Format4 collect_unicodes()
Behdad Esfahbod [Sun, 26 Aug 2018 04:15:39 +0000 (21:15 -0700)]
Use new hb_auto_t<> constructor with Coverage::Iter
Behdad Esfahbod [Sun, 26 Aug 2018 04:08:15 +0000 (21:08 -0700)]
Add 1-param passthrough constructor to hb_auto_t<>
And use.
Behdad Esfahbod [Sat, 25 Aug 2018 23:14:32 +0000 (16:14 -0700)]
[cmap] Minor
Behdad Esfahbod [Sat, 25 Aug 2018 23:11:26 +0000 (16:11 -0700)]
[cmap Add hb_subset_collect_variation_unicodes()
To be moved to hb-face.h later.
Behdad Esfahbod [Sat, 25 Aug 2018 22:56:07 +0000 (15:56 -0700)]
[cmap] Add hb_subset_collect_variation_selectors()
To be moved to hb-face later.
Behdad Esfahbod [Sat, 25 Aug 2018 22:41:25 +0000 (15:41 -0700)]
[cmap] Remove unused code
Behdad Esfahbod [Sat, 25 Aug 2018 22:37:56 +0000 (15:37 -0700)]
[cmap] Use bsearch to find subtables
Behdad Esfahbod [Sat, 25 Aug 2018 22:33:05 +0000 (15:33 -0700)]
[cmap] Factor out find_best_subtable
Behdad Esfahbod [Sat, 25 Aug 2018 22:25:03 +0000 (15:25 -0700)]
Minor
Behdad Esfahbod [Sat, 25 Aug 2018 16:35:45 +0000 (09:35 -0700)]
[cmap] Implement collect_unicodes() for Format0/6/10
Behdad Esfahbod [Sat, 25 Aug 2018 16:33:30 +0000 (09:33 -0700)]
[cmap] Simplify collect_unicodes()
Don't use accelerator (almost). Hooks up Format13 as well.
Behdad Esfahbod [Sat, 25 Aug 2018 15:47:06 +0000 (08:47 -0700)]
Rename get_all_codepoints() to collect_unicodes()
Behdad Esfahbod [Sat, 25 Aug 2018 15:44:18 +0000 (08:44 -0700)]
[ot-font] Return char-not-found if mapped to gid 0
OpenType cmap table can use gid=0 to mean "not covered" to produce
more optimized cmap subtables. Return false from get_nominal_glyph()
for those. hb-ft already does this.
Behdad Esfahbod [Sat, 25 Aug 2018 15:18:53 +0000 (08:18 -0700)]
Add face-builder
New API:
+hb_face_builder_create
+hb_face_builder_add_table
Behdad Esfahbod [Fri, 24 Aug 2018 17:29:45 +0000 (10:29 -0700)]
[blob] Add as_bytes()
Behdad Esfahbod [Fri, 24 Aug 2018 17:24:45 +0000 (10:24 -0700)]
[sanitize] Document how sanitize machinery works
Behdad Esfahbod [Fri, 24 Aug 2018 17:07:49 +0000 (10:07 -0700)]
[serialize] Add copy_bytes() and copy_blob()
Behdad Esfahbod [Thu, 16 Aug 2018 03:12:25 +0000 (20:12 -0700)]
[ot] Rename hb_ot_layout_t to hb_ot_face_data_t
Emil A Eklund [Tue, 14 Aug 2018 21:47:20 +0000 (14:47 -0700)]
Add guard around free_static_C_locale
Add HB_USE_ATEXIT guard around free_static_C_locale missed by previous
commit.
Emil A Eklund [Tue, 14 Aug 2018 20:50:24 +0000 (13:50 -0700)]
Guard free_static function definitions with macro
Add HB_USE_ATEXIT macros around free_static function definitions to
avoid unused function compiler warnings/errors.
Behdad Esfahbod [Tue, 14 Aug 2018 17:59:34 +0000 (10:59 -0700)]
1.8.8
Behdad Esfahbod [Tue, 14 Aug 2018 00:02:21 +0000 (17:02 -0700)]
[icu] Pass normalizer instance down as user_data
Behdad Esfahbod [Mon, 13 Aug 2018 17:30:41 +0000 (10:30 -0700)]
Don't add reference in get_unicode_funcs() functions
Users don't expect a new reference returned from a get() function.
Indeed, all users of that API I foud where NOT destroying the reference.
Just change the implementations to NOT return a reference.
This applies to the following APIs:
hb_unicode_funcs_get_default()
hb_glib_get_unicode_funcs()
hb_icu_get_unicode_funcs()
Fixes https://github.com/harfbuzz/harfbuzz/issues/1134
Behdad Esfahbod [Mon, 13 Aug 2018 01:20:53 +0000 (18:20 -0700)]
[uniscribe] Use lazy loader
Fixes https://github.com/harfbuzz/harfbuzz/issues/1129
Behdad Esfahbod [Mon, 13 Aug 2018 01:10:59 +0000 (18:10 -0700)]
Another clang bot fix
Behdad Esfahbod [Mon, 13 Aug 2018 00:47:59 +0000 (17:47 -0700)]
Silence clang
Behdad Esfahbod [Mon, 13 Aug 2018 00:42:16 +0000 (17:42 -0700)]
[lazy] Use for C_locale
Behdad Esfahbod [Mon, 13 Aug 2018 00:32:10 +0000 (17:32 -0700)]
[lazy] Port more
Behdad Esfahbod [Mon, 13 Aug 2018 00:19:55 +0000 (17:19 -0700)]
[lazy] Rename free()
Behdad Esfahbod [Mon, 13 Aug 2018 00:14:32 +0000 (17:14 -0700)]
[lazy] Port more to it
Behdad Esfahbod [Sun, 12 Aug 2018 23:57:06 +0000 (16:57 -0700)]
[lazy] Make hb_lazy_loader_t<> more usable
Behdad Esfahbod [Sun, 12 Aug 2018 23:40:08 +0000 (16:40 -0700)]
[lazy] Minor
Behdad Esfahbod [Sun, 12 Aug 2018 23:33:48 +0000 (16:33 -0700)]
Minor
Behdad Esfahbod [Sun, 12 Aug 2018 23:30:39 +0000 (16:30 -0700)]
[icu] Use get_relaxed for normalizer access
We've had the proper barriers already. No need for more with every access.
Behdad Esfahbod [Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)]
[icu] Fix for breakage after recent change