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
2021-11-02 15:25:18 -07:00
Qunxin Liu
364b6b3989
[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.
2021-11-02 15:15:02 -07:00
Garret Rieger
49c9392412
[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 (a3f988fbf6/Lib/fontTools/ttLib/tables/otTables.py (L1137)
) to reduce overflows during packing.
2021-11-02 12:19:13 -06:00
Garret Rieger
9643d77086
[repacker] add more detailed comment about virtual links.
2021-11-02 12:19:13 -06:00
Garret Rieger
5bfc7d1015
[repacker] remove VirtualOffset struct.
...
Make and add_virtual_link () specialization of add_link() instead.
2021-11-02 12:19:13 -06:00
Garret Rieger
bc4c5341d6
[repacker] Add test for virtual links in the repacker.
2021-11-02 12:19:13 -06:00
Garret Rieger
7615b94ecf
[repacker] add 'virtual links' to the serializer.
...
These aren't associated with an offset field, but instead exist solely to add an ordering constraint to the object graph.
2021-11-02 12:19:13 -06:00
Behdad Esfahbod
59d8f6c817
[map] Fix copy assignment operator
2021-11-02 10:33:53 -06:00
Behdad Esfahbod
bbda020cbc
Merge pull request #3278 from harfbuzz/more-std
...
More standard idioms
2021-11-02 08:40:59 -07:00
Behdad Esfahbod
459e485bab
[meta] Remove otherwise-empty test-meta
2021-11-02 09:36:12 -06:00
Behdad Esfahbod
b8724c6023
[meta] Add in-house impl of hb_is_convertible()
2021-11-02 00:49:40 -06:00
Behdad Esfahbod
7a078c395a
[meta] Use std::conditional instead of hb_conditional()
2021-11-02 00:44:51 -06:00
Behdad Esfahbod
943921cf0c
[meta] Use more std type_traits
2021-11-02 00:26:46 -06:00
Behdad Esfahbod
6d555ce82e
[meta] Use std::forward instead of hb_forward()
2021-11-02 00:18:22 -06:00
Behdad Esfahbod
811f80a701
[algs] Use std::move instead of hb_move()
2021-11-02 00:17:54 -06:00
Behdad Esfahbod
896e0c74a8
[meta] Remove unused traits
2021-11-02 00:06:30 -06:00
Behdad Esfahbod
be42800fc6
[meta] Use std::is_trivially_... instead of internal copies
2021-11-02 00:04:18 -06:00
Behdad Esfahbod
30c05e8b55
[algs] include <new>
2021-11-01 23:57:00 -06:00
Behdad Esfahbod
4c6fd7cdb2
[map] Try moving items when resizing
2021-11-01 23:13:34 -06:00
Behdad Esfahbod
a28ea8d7f3
Simplify swap()
2021-11-01 22:50:54 -06:00
Behdad Esfahbod
94158316d9
[map] Add iterable constructor
2021-11-01 22:47:26 -06:00
Behdad Esfahbod
a03b9b14c9
[map] Add initializer_list and swap()
2021-11-01 22:45:11 -06:00
Behdad Esfahbod
3604f5f248
[algs] Include <initializer_list>
2021-11-01 22:37:42 -06:00
Behdad Esfahbod
c30f6834d0
[map] Add 5 methods
2021-11-01 22:29:14 -06:00
Behdad Esfahbod
38debbab7e
[set] Add successful check in swap()
2021-11-01 22:17:35 -06:00
Behdad Esfahbod
b860b44229
[bimap] Simplify initialization
2021-11-01 22:08:03 -06:00
Behdad Esfahbod
d2c364f6e7
[array] Use default methods
2021-11-01 21:55:14 -06:00
Behdad Esfahbod
6f74d80ed1
[vector] Complete sorted_vector 5-methods
2021-11-01 21:49:32 -06:00
Behdad Esfahbod
a28b5d03b5
[vector] Add swap() friend to hb_sorted_vector_t
2021-11-01 21:43:44 -06:00
Behdad Esfahbod
e97e79967e
Verbiage
2021-11-01 21:34:46 -06:00
Behdad Esfahbod
34fa5e2901
[set] More default operators
2021-11-01 21:25:03 -06:00
Behdad Esfahbod
b6c0b40fc2
[vector] Use default constructor
2021-11-01 21:15:38 -06:00
Behdad Esfahbod
1e3f57c079
[bit-set] Implement standard-5 methods plus swap
2021-11-01 21:14:12 -06:00
Behdad Esfahbod
11eadb5d28
[bit-set-invertible] Implement standard-5 methods & swap
2021-11-01 21:07:09 -06:00
Behdad Esfahbod
dcd18da611
[set] Add standard the 5 standard methods & tests
2021-11-01 20:55:30 -06:00
Behdad Esfahbod
628a0f3796
[vector] Add more tests
2021-11-01 20:36:55 -06:00
Behdad Esfahbod
f15858be5f
[vector] Pre-allocate if iterator has random-access length
2021-11-01 20:26:07 -06:00
Behdad Esfahbod
11135150a7
[vector] Move test code into separate file
2021-11-01 20:23:12 -06:00
Behdad Esfahbod
ee75e716c1
[vector] Add initializer from iterable
2021-11-01 20:19:57 -06:00
Behdad Esfahbod
18a078f968
[vector] Implement move assignment using swap
2021-11-01 20:06:58 -06:00
Matthias Clasen
8dc86d0703
Add a test font scale rounding behavior
...
This test verifies the fix for
https://github.com/harfbuzz/harfbuzz/issues/3274
2021-11-01 17:59:48 -07:00
Behdad Esfahbod
eeda2c549d
[vector] Add initializer_list constructor & tests
2021-11-01 18:50:11 -06:00
Behdad Esfahbod
c484641304
Revert "[vector] Add initializer_list constructor & tests"
...
This reverts commit aa6182453b
.
2021-11-01 18:48:24 -06:00
Behdad Esfahbod
aa6182453b
[vector] Add initializer_list constructor & tests
2021-11-01 18:36:57 -06:00
Behdad Esfahbod
8c05569930
[algs] Add hb_swap() ala, and using, std::swap()
...
Use it in vector.
Use ADL idiom.
2021-11-01 17:59:17 -06:00
Behdad Esfahbod
bbaccf23d9
Better round positions during scaling
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
2021-11-01 16:45:36 -06:00
Matthias Clasen
52ccdc78e6
docs: Add a link to the OpenType spec
...
Link to the name table specification in the
hb_ot_name_id_t docs.
2021-10-28 11:58:38 -07:00
Matthias Clasen
8cb2f969d9
Document hb_ot_name_t values
...
Add a short blurb for each value and refer
to the OpenType spec for more information.
Fixes : #3181
2021-10-28 11:58:38 -07:00
Qunxin Liu
85deddb16e
[subset] fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40406
2021-10-27 16:16:15 -07:00
David Korczynski
de9424172d
[ci] Add CIFuzz integration
...
Add CIFuzz integration, which will run the fuzzers for a short amount
of time when a PR is submitted on Github.
Signed-off-by: David Korczynski <david@adalogics.com>
2021-10-27 10:01:41 -07:00