|
067f90a8
|
2021-12-14T16:24:38
|
|
[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.
|
|
c4573c2e
|
2021-12-14T14:49:15
|
|
[repacker] don't infinite loop if visited or roots is in error.
Fixes https://oss-fuzz.com/testcase-detail/5205038086094848
|
|
23159084
|
2021-12-10T15:00:16
|
|
[morx] Reverse graphemese, not whole buffer
Fixes https://github.com/harfbuzz/harfbuzz/issues/3314
Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
|
|
706014f6
|
2021-12-01T20:20:12
|
|
[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
|
|
51655a07
|
2021-12-05T19:27:57
|
|
[subset] COLR : only include glyphs after COLR closure
|
|
74b46b29
|
2021-12-02T19:50:16
|
|
[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.
|
|
6c81cd95
|
2021-12-01T19:29:34
|
|
[tests] Add tests for platform shapers
Fixes https://github.com/harfbuzz/harfbuzz/issues/3115
|
|
9121ed0c
|
2021-11-30T13:45:22
|
|
[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.
|
|
95329081
|
2021-11-26T16:18:42
|
|
[subset] further optimize cmap4 packing.
|
|
59914382
|
2021-11-26T14:19:39
|
|
[subset] Don't pad glyphs when using long loca.
|
|
d9660fd5
|
2021-11-25T18:15:35
|
|
[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.
|
|
720ab088
|
2021-11-25T11:49:16
|
|
[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
|
|
903a6bae
|
2021-11-15T19:58:33
|
|
[subset] layout_features filtering fix
we should not use get_size (), which returns length * item_size
|
|
69d8f27c
|
2021-11-20T17:09:15
|
|
[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.
|
|
84dc4e85
|
2021-11-08T09:36:31
|
|
[subset] avoid writing out duplicate extra glyph names in post table
Add check for possible duplicate with other name index
|
|
ca418cac
|
2021-11-17T16:42:08
|
|
[subset] keep features that have FeatureParams and the tag is "size"
|
|
e88fc41e
|
2021-11-18T16:53:36
|
|
[subset] inputSequence could be empty, change the sanity check
|
|
ace98cc6
|
2021-11-08T15:47:56
|
|
[subset] Only sanitize recursion depth in COLR.
|
|
f51b48c8
|
2021-11-02T16:16:52
|
|
[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.
|
|
540f19b6
|
2021-10-29T17:11:53
|
|
[subset] fix bug in (Chain)ContextFormat2
Only keep rulesets for glyphs class numbers that survived in coverage
|
|
e260eeb9
|
2021-11-02T15:31:32
|
|
[subset] Update test goldens for gdef.glyphset.
|
|
60e20364
|
2021-11-02T15:02:36
|
|
[subset] use glyphset_gsub instead of glyphset for GDEF
|
|
e39647c0
|
2021-11-02T15:25:05
|
|
[subset] update subset goldens to fix tests.
|
|
0a7563a5
|
2021-11-01T14:56:14
|
|
[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
|
|
364b6b39
|
2021-10-31T14:38:20
|
|
[subset] Don't assume FeatureList is sorted
Though the spec said FeatureRecords are sorted alphabetically by feature
tag, there're font files with unsorted FeatureList. And harfbuzz is not
able to subset these files correctly because we use binary search in
finding featureRecords when collecting lookups. Also
find_duplicate_features needs to be updated to handle this.
|
|
49c93924
|
2021-09-24T09:28:10
|
|
[subset] During LigatureSubstFormat1 subsetting always place Coverage last.
In Windows 7 on Chrome if the coverage table comes before any of the LigatureSet or Ligature subtables the font won't load. This changes the packing order to always place the Coverage table last. Virtual links are used to ensure the repacker maintains the desired ordering.
Coincidentally fontTools also does the same thing (https://github.com/fonttools/fonttools/blob/a3f988fbf621142d7d9b3e68a69725b88f358869/Lib/fontTools/ttLib/tables/otTables.py#L1137) to reduce overflows during packing.
|
|
8dc86d07
|
2021-11-01T19:57:11
|
|
Add a test font scale rounding behavior
This test verifies the fix for
https://github.com/harfbuzz/harfbuzz/issues/3274
|
|
85deddb1
|
2021-10-27T14:36:02
|
|
[subset] fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40406
|
|
42626369
|
2021-10-23T13:18:22
|
|
Merge pull request #3248 from googlefonts/connected_components
[repacker] Keep connected subgraphs in the same space.
|
|
8c583db9
|
2021-10-02T20:32:30
|
|
[subset] COLRv1: update subset() method for new strutc ClipList and VarIdxMap
Also fix issues in struct PaintTransform definition
|
|
8eaee2f8
|
2021-10-07T20:10:31
|
|
[USE] Only skip default ignorables within CCSes
|
|
79937d24
|
2021-10-05T12:53:21
|
|
[repacker] Add repacker test that requires space splitting.
|
|
bb57df7a
|
2021-10-05T15:40:30
|
|
[test] Add test for https://github.com/harfbuzz/harfbuzz/issues/2757#issuecomment-933531978
|
|
16245503
|
2021-10-05T15:35:17
|
|
[test] Add test for https://github.com/harfbuzz/harfbuzz/issues/3244
|
|
794b00db
|
2021-09-27T17:21:16
|
|
[subset] fuzzer fix: https://oss-fuzz.com/testcase-detail/6616166961905664
|
|
d5beb96e
|
2021-09-09T10:40:08
|
|
[repacker] add repacker isolation test on real font.
|
|
ca7b9dae
|
2021-09-20T14:42:51
|
|
[subset] subset MATH table
|
|
c2cc566c
|
2021-09-22T14:15:55
|
|
[subset] Fix subset_offset_array adding unused space to serializer.
ArrayOf.serialize_append allocates space for the new item, but ArrayOf.pop() does not recover the allocated space. So in the case where the revert path was entered the extra space added by serialize_append gets left in the serialization buffer. This moves the snapshot to before ArrayOf.serialize_append is called so that revert cleans up the buffer extend.
|
|
8c5c8174
|
2021-09-12T20:16:30
|
|
[subset] fix find_duplicate_features
We should check each feature against all other features with the same
tag for duplicates.
|
|
74f96d9d
|
2021-09-17T13:46:07
|
|
[repacker] fix heap use after free in repacker.
Don't store a reference to the link in overflow records as the link object may be freed if the sorted graph vector is resized.
|
|
d700646c
|
2021-09-16T11:23:09
|
|
[subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
|
|
a0101a31
|
2021-09-14T18:38:50
|
|
[Unicode 14] Add tests
|
|
4d9b7de0
|
2021-09-11T00:43:43
|
|
[style] Prepare for release
|
|
201cbe3c
|
2021-09-09T11:09:46
|
|
[style] Rename HB_STYLE_TAG_SLANT to HB_STYLE_TAG_SLANT_ANGLE
|
|
37379f8f
|
2021-09-02T11:54:37
|
|
[subset] fox for (Chain)ContextFormat3: subset lookupRecord
skip copying a lookupRecord if lookup referenced in the lookupRecord is
not retained after subset
|
|
9fddbb3e
|
2021-09-03T17:56:08
|
|
[test] Rename test and split into smaller subtests
|
|
c6bb719e
|
2021-09-03T16:14:02
|
|
[test] Add tests for Arabic decomposition
Test that both NFC and NFD input produces identical results for fonts
that used composed fonts internally (Amiri here) and fonts that
decompose internally (Noto Nastaliq Urdu here) and that for the former
composed forms are used.
See https://github.com/harfbuzz/harfbuzz/issues/3179
|
|
a9dc4fbe
|
2021-09-03T16:20:06
|
|
[test] Make shape test names match file names
No idea why test names are underscorified but it it just makes calling
meson test testname harder than it should being not able to copy file
name directly.
|
|
102666da
|
2021-08-27T10:31:37
|
|
[subset] add test for hb_subset_input_set (...).
|
|
99356ea5
|
2021-08-25T17:19:06
|
|
Merge pull request #3150 from harfbuzz/item-context-tests
[test] Add tests for item context
|
|
955f86a0
|
2021-08-24T11:17:10
|
|
[test-set] Fix compiler warnings
|
|
f2441a4b
|
2021-08-24T15:53:32
|
|
[subset] Remove retain all layout features flag.
Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
|
|
f84daccb
|
2021-08-24T14:20:26
|
|
[set] include null pool sets in the permutations tested by inverted_operations.
|
|
fb07f8f8
|
2021-08-23T15:33:57
|
|
During subset input creation check for set alloc failures and fail if encountered.
|
|
33bfe9ed
|
2021-08-16T17:00:57
|
|
[test] Add tests for item context
Test pre-context and post-context in Arabic shaper, as well as
interaction of pre-context with BOT flag.
|
|
34e0b28f
|
2021-08-18T20:46:06
|
|
[subset] make glyph-names option match fonttools behavior
Don't encode psNames that are contained in standard glyph names set
|
|
829b0f33
|
2021-08-20T01:28:15
|
|
Merge pull request #3154 from harfbuzz/set-invert
Resurrect hb_set_invert()
|
|
915550ab
|
2021-08-19T17:48:38
|
|
[set] remove inverted test TODO.
|
|
c4ed5829
|
2021-08-19T17:47:41
|
|
[set] add test for inverted set operations.
This test checks all possible set configurations against each operation type.
|
|
325fd6dd
|
2021-08-19T15:54:31
|
|
[set] add tests for inverted set equality.
|
|
287032af
|
2021-08-19T15:45:28
|
|
[set] update set test TODO list.
|
|
5c003d80
|
2021-08-19T15:41:12
|
|
[set] add tests for inverted previous iteration.
|
|
3f2cc582
|
2021-08-19T15:00:07
|
|
[set] add basic and iteration set inverion tests.
|
|
dc31920b
|
2021-08-18T14:20:14
|
|
Don't serialize null offsets in CPAL.
Fixes https://oss-fuzz.com/testcase-detail/5443213648330752
|
|
cb05c363
|
2021-08-13T15:19:20
|
|
[subset] add some basic tests for the legacy subset methods.
|
|
44802c8e
|
2021-08-12T11:11:51
|
|
[subset] use layout-features=* for layout subsetting tests w/ synthetic test fonts.
|
|
c0f3af91
|
2021-08-11T16:20:05
|
|
[subset] speed up add_gid_and_children and adjust op limit.
Fix for fuzzer timeout: https://oss-fuzz.com/testcase-detail/5001604901240832.
- Operation limit is per glyph, so 100,000 should still be far more than needed.
- Switches from for(...) to while(...) loop for iteration. for(...) calls it.end() which in this case triggers a complete iteration.
- Cache CompositeGlyph size in the iterator to avoid needing to recalculate it.
|
|
23282c9c
|
2021-08-11T22:49:47
|
|
[util/hb-subset] Support ranges in --unicodes / --unicodes-file
Fixes https://github.com/harfbuzz/harfbuzz/issues/3109
|
|
58bfe407
|
2021-08-11T19:48:28
|
|
[util] Move hb-subset away from main-font-text
|
|
3147e081
|
2021-08-11T19:33:00
|
|
Merge branch 'main' into post-parse
|
|
43722cc9
|
2021-08-12T02:32:29
|
|
[test] Add some real reverse sub tests
|
|
e0d7060f
|
2021-08-11T18:43:21
|
|
[test] Rename shaping/ to shape/
|
|
f1226988
|
2021-08-12T01:47:35
|
|
[test] Improve generate-expected-outputs.py diff output
|
|
6ac6a2b2
|
2021-08-12T00:04:32
|
|
[test] hb_ot_layout_language_get_feature_tags()
|
|
e9b743b2
|
2021-08-11T23:51:12
|
|
[test] hb_ot_layout_script_get_language_tags()
|
|
bf438b81
|
2021-08-11T23:23:51
|
|
[test] hb_ot_layout_table_get_feature_tags()
|
|
2f88ea5a
|
2021-08-11T23:12:00
|
|
[test] hb_ot_layout_table_find_script()
|
|
f60caad7
|
2021-08-11T22:54:30
|
|
[test] hb_ot_layout_table_get_script_tags()
|
|
c08f1b89
|
2021-08-10T12:29:32
|
|
[map] fix incorrect population count in hash map.
If the same key was set twice the population was being incorrectly incremented.
|
|
e39c3bde
|
2021-08-10T11:41:55
|
|
[subset] fix bug in parsing glyf flags.
the bytes of the flag stream were being treated as signed integers instead of unsigned as specified in the spec.
|
|
f3acb977
|
2021-08-10T11:05:40
|
|
[test/shaping;util] Use ';' instead of ':' to separate test fields
Accept that in --batch mode. Also in batch mode don't send the 0th arg.
Related discussion: https://github.com/harfbuzz/harfbuzz/pull/3102
|
|
b83fd3a5
|
2021-08-10T02:21:05
|
|
[util] Refactor batch-processing code into batch.hh
|
|
8c0c217b
|
2021-08-06T10:45:38
|
|
[subset] fail reference blob in face builder if allocation for table sorting fails.
Fixes https://oss-fuzz.com/testcase-detail/5041767803125760
|
|
c2ee1fdd
|
2021-08-04T16:42:49
|
|
[subset] remove unsed table_entry struct.
|
|
dea0fe57
|
2021-08-04T16:36:20
|
|
[subset] discard extra copies of a table in face builder.
Fixes #2361. Stores tables in the builder in a hashmap so you end up with at most one copy of each table. Table serialization order is now based on tag sort order instead of order of insertion into the builder.
|
|
2c024dc3
|
2021-08-04T11:38:38
|
|
[subset] prune redundant cmap12 subtables.
If the post subset cmap12 table is equivalent to another cmap subtable don't include the 12 table in the final subset. Matches change https://github.com/fonttools/fonttools/pull/2146 from fontTools.
|
|
84946e4d
|
2021-08-05T00:05:26
|
|
[test] Suggest updating the expectation if ttx matches
https://github.com/harfbuzz/harfbuzz/issues/3089#issuecomment-892208892
|
|
5086e105
|
2021-07-29T17:03:55
|
|
[test] Add failing fuzzer test case
From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36236
https://oss-fuzz.com/testcase-detail/5061207689134080
|
|
f698fe5a
|
2021-08-04T12:08:18
|
|
[test] Always fail subset tests if hashes don’t match
Regardless of the pre sentience or absence of fonttools.
|
|
9f544e50
|
2021-08-04T04:20:14
|
|
[test] Don’t skip subset tests early
Check for FontTools only when the checksums are mismatching.
|
|
b0841533
|
2021-08-04T04:12:31
|
|
[test] Remove subset tests from the slow suite
|
|
7ccc52b0
|
2021-08-04T03:57:18
|
|
[test] Compare sha256 hash before TTX dumps
Most of time the files are identical, so instead of comparing the TTX
dump we can check sha256 hashes of the files first and if they match, we
don’t have to check the TTX dumps at all, making the subset tests orders
of magnitude faster.
time meson test --suite=subset down from:
real 0m19.418s
user 0m38.171s
sys 0m3.587s
to:
real 0m3.102s
user 0m8.622s
sys 0m1.701s
The expected files have been replaced by hb-subset output so they are
bit-identical where FontTools output might not.
The generate-expected-outputs.py now compares the hb-subset output with
fontttols subset and errors of they don’t match.
|
|
770fbd5a
|
2021-08-04T00:07:23
|
|
Revert "[test] Speed-up subset tests by saving TTX dump"
This reverts commit 278f44dcee34cea25403e42e06668f0afe2328c1.
|
|
2cc9ed2b
|
2021-08-02T22:00:11
|
|
[test] More lookup_collect_glyphs() tests
|
|
06640374
|
2021-08-02T19:52:59
|
|
[test] More lookup_collect_glyphs() tests
|
|
ecdd8e3f
|
2021-08-02T19:36:20
|
|
[test] More lookup_collect_glyphs() tests
|
|
f998d7e1
|
2021-08-02T16:10:13
|
|
[test] Add API test for lookup_collect_glyphs()
We don’t seem to have any tests exercising this API at all, and it is a
good check of GSUB/GPOS code.
|
|
10e73d18
|
2021-08-01T11:11:12
|
|
[test] Add batch mode to hb-subset and use it
time meson test --suite=subset down from:
real 0m22.822s
user 0m44.561s
sys 0m9.255s
to:
real 0m19.418s
user 0m38.171s
sys 0m3.587s
Does not seem to help much, but it is something.
Part of https://github.com/harfbuzz/harfbuzz/issues/3089
|
|
1fd3a261
|
2021-08-01T19:38:39
|
|
[test] Remove unused shaping tests reference mode
|
|
05cf8128
|
2021-08-01T07:59:25
|
|
[util/hb-shape] Fix use of EOF as end-of-line
EOF is -1, which was being treated as a valid char (255).
Use int instead.
|