Behdad Esfahbod
197ed8f592
[test/api] Fix leaks
3 years ago
Behdad Esfahbod
531c27d199
Fix build
3 years ago
Behdad Esfahbod
8b7ccc41c4
[hmtx] Implement [boring-expansion] >64k expansion
...
This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
3 years ago
Behdad Esfahbod
379e526aa4
[test] Add test for current hmtx logic
3 years ago
Behdad Esfahbod
ed6d287d11
[ot-face] Load num-glyphs from `loca` table before `maxp`
...
Implements [boring-expansion] [maxp] Relax
https://github.com/be-fonts/boring-expansion-spec/issues/6
3 years ago
Behdad Esfahbod
b3f8288cca
[test/subset] Don't hash files without reason
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3118#issuecomment-894021518
3 years ago
Behdad Esfahbod
af407dd24d
Add a fuzzer font
3 years ago
Alexis King
81754a5a96
[ot-math] Add hb_ot_math_get_glyph_kernings
...
closes #3396
3 years ago
Alexis King
1bc4bad7a5
[ot-tag] Add HB_SCRIPT_MATH (Zmth) and map it to OT ‘math’ tag
...
The ISO 15924 code for mathematical notation is ‘Zmth’, but the
OpenType script is ‘math’.
3 years ago
Behdad Esfahbod
7657bdd91f
Revert "Fix failing Mac test for previous commit"
...
This reverts commit 070e30e6da
.
3 years ago
Behdad Esfahbod
44da4e2a27
Revert "One more fix"
...
This reverts commit cab943a015
.
3 years ago
Behdad Esfahbod
88798ee8be
[GPOS] Disable split-kerning
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3408
Reverts https://github.com/harfbuzz/harfbuzz/pull/3235
Fixes https://github.com/harfbuzz/harfbuzz/pull/3235#issuecomment-1029814978
3 years ago
Garret Rieger
4e2f409bce
[subset] Don't hold references to members of the active_glyph_stack.
...
These references may get invalidated after the vector for the stack is resized. Fixes: https://oss-fuzz.com/testcase-detail/5422577634377728
3 years ago
Garret Rieger
bc899650c7
[subset] Fix for issue #3397 .
...
cur_intersected_glyphs gets modified during recursion leading to incorrect filtering of sub tables in some cases. So don't use cur_intersected_glyphs. Instead just add an additional entry onto the parent_active_glyphs () stack.
Additionaly expands NotoNastaliqUrdu tests to include coverage of the issue from #3397 .
3 years ago
Behdad Esfahbod
61856359cb
[fuzz] Disable verification for now.
3 years ago
Behdad Esfahbod
6596e42d16
[fuzz] Verify shape results
3 years ago
Behdad Esfahbod
909e34f68a
[unsafe-to-concat] Adjust Arabic-joining start boundary condition more
3 years ago
Behdad Esfahbod
cab943a015
One more fix
3 years ago
Behdad Esfahbod
070e30e6da
Fix failing Mac test for previous commit
3 years ago
Behdad Esfahbod
84aa1a836c
[PairPos] Split GPOS kerning to both sides ( #3235 )
3 years ago
Khaled Hosny
1522015bb2
[test] Add --single-par to more places in hb-aots-tester [ci skip]
3 years ago
Behdad Esfahbod
7e160dc347
[gpos] Fix unsafe-to-break of mark-attachment
...
This was undetected because most of the time marks were in same
cluster of their base already.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3093
3 years ago
Simon Cozens
282642311f
Test for #2140
3 years ago
Simon Cozens
fc5354c5e5
Add test for #2516
3 years ago
luz paz
e2e305066a
Fix various typos
...
Found via `codespell -q 3 -S ./perf/texts -L actualy,ba,beng,fo,gir,inout,nd,ot,pres,ro,te,teh,timne`
3 years ago
Garret Rieger
87496bf63e
[subset] fix fuzzer timeout if visisted_paint goes into error.
3 years ago
Garret Rieger
067f90a820
[subset] Fix for fuzzer timeout.
...
Fixes https://oss-fuzz.com/testcase-detail/5549945449480192
In prune_langsys: move LangSys visited check up before any work is done for a LangSys. In this particular case the compare() method is responsible for the majority of the time spent and wasn't being guarded with a visisted check.
3 years ago
Garret Rieger
c4573c2ec7
[repacker] don't infinite loop if visited or roots is in error.
...
Fixes https://oss-fuzz.com/testcase-detail/5205038086094848
3 years ago
Behdad Esfahbod
23159084b4
[morx] Reverse graphemese, not whole buffer
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3314
Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
3 years ago
Qunxin Liu
706014f69d
[subset] (Chain)ContextSubst glyph_closure fix
...
- When pos_glyphs is empty, use current full glyphs set as input for
subsequent recursive closure process
- Also increase max_lookup_visit_count to 35000 cause a real font file hit
previous limit 20000 and some lookups are dropped unexpectedly
3 years ago
Qunxin Liu
51655a078e
[subset] COLR : only include glyphs after COLR closure
3 years ago
Qunxin Liu
74b46b29e7
[subset] MATH: don't serialize coverage table when iterator is empty
...
when iterator is empty, just set coverage offset to 0.
serialize() in coverage will at lease write out a 16-bit format header.
3 years ago
Khaled Hosny
6c81cd9543
[tests] Add tests for platform shapers
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3115
3 years ago
Garret Rieger
9121ed0cec
[subset] Improve sharing of Ligature subtables.
...
Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
3 years ago
Garret Rieger
95329081c2
[subset] further optimize cmap4 packing.
3 years ago
Garret Rieger
599143824c
[subset] Don't pad glyphs when using long loca.
3 years ago
Garret Rieger
d9660fd58a
[subset] Make cmap4 packing more optimal.
...
The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
3 years ago
Behdad Esfahbod
720ab0883b
[util] Add --single-par
...
Use it in aots tests
Fixes https://github.com/harfbuzz/harfbuzz/issues/3129
Related https://github.com/harfbuzz/harfbuzz/issues/3298
3 years ago
Qunxin Liu
903a6baece
[subset] layout_features filtering fix
...
we should not use get_size (), which returns length * item_size
3 years ago
Khaled Hosny
69d8f27c69
[meson] Require 0.55.0
...
We implicitly require it for building ragel subproject. This new version
requirement should satisfied in both Fedora 33 and Debian bullseye, and
not be too cutting edge for us.
3 years ago
Qunxin Liu
84dc4e85e8
[subset] avoid writing out duplicate extra glyph names in post table
...
Add check for possible duplicate with other name index
3 years ago
Qunxin Liu
ca418cac74
[subset] keep features that have FeatureParams and the tag is "size"
3 years ago
Qunxin Liu
e88fc41ef3
[subset] inputSequence could be empty, change the sanity check
3 years ago
Garret Rieger
ace98cc65f
[subset] Only sanitize recursion depth in COLR.
3 years ago
Garret Rieger
f51b48c8e7
[subset] Fix fuzzer found memory leak.
...
Happens because an insert into a map with an invalid key reports successful, but this causes the set being inserted to be lost.
3 years ago
Qunxin Liu
540f19b6fe
[subset] fix bug in (Chain)ContextFormat2
...
Only keep rulesets for glyphs class numbers that survived in coverage
3 years ago
Garret Rieger
e260eeb9be
[subset] Update test goldens for gdef.glyphset.
3 years ago
Qunxin Liu
60e203644b
[subset] use glyphset_gsub instead of glyphset for GDEF
3 years ago
Garret Rieger
e39647c0f1
[subset] update subset goldens to fix tests.
3 years ago
Qunxin Liu
0a7563a53f
[subset] fuzzer fix: https://oss-fuzz.com/testcase?key=6254792024915968
...
Make sure input is valid, each gid has a corresponding offset value in
the map
3 years ago