Commit graph

13853 commits

Author SHA1 Message Date
Garret Rieger
1d2516f037 [repack] get basic pairpos split test working. 2022-07-29 22:21:31 +00:00
Garret Rieger
fb3f6ad7c0 [repacker] ensure lookup map is updated when lookup memory location changes. 2022-07-29 22:21:31 +00:00
Garret Rieger
4e7360f78d [repacker] begin adding tests for PairPosFormat1 splitting. 2022-07-29 22:21:31 +00:00
Garret Rieger
f1bfb6585f [repacker] cleanup debug prints. 2022-07-29 22:21:31 +00:00
Garret Rieger
65afed047d [repacker] more bug fixes. 2022-07-29 22:21:31 +00:00
Garret Rieger
1002a3dcd3 [repacker] bug fixes. 2022-07-29 22:21:31 +00:00
Garret Rieger
a5c2c8c131 [repack] fix incorrect shrink. 2022-07-29 22:21:31 +00:00
Garret Rieger
d589ce68ea [repacker] add extension subtable when needed while adding new PairPos table's. 2022-07-29 22:21:31 +00:00
Garret Rieger
5024d4de67 [repack] more PairPos split implementation. 2022-07-29 22:21:31 +00:00
Garret Rieger
510b8ab101 [repack] link new coverage in PairPosFormat1::clone_range. 2022-07-29 22:21:31 +00:00
Garret Rieger
29cb8818cd [repacker] new coverage serialization in PairPosFormat1. 2022-07-29 22:21:31 +00:00
Garret Rieger
8d63f60e5b [repack] add graph_t::move_child helper function. 2022-07-29 22:21:31 +00:00
Garret Rieger
8e5fffc44a [repack] add helper to create new nodes.
Switch to malloc'ing each node individually rather than trying to guess up front the total buffer space needed.
2022-07-29 22:21:31 +00:00
Garret Rieger
bf0986c7d1 [repack] sketch splitting mechanism for PairPosFormat1. 2022-07-29 22:21:30 +00:00
Garret Rieger
f6a242b605 [repacker] begin adding PairPos splitting support. 2022-07-29 22:21:30 +00:00
Garret Rieger
f3aff45e04 [repacker] Update call to hb_subset_repack_or_fail in tests. 2022-07-29 16:16:46 -06:00
Garret Rieger
69913e012e [repacker] Update repacker api method to take a table tag.
This is needed to allow table specific optimizations to be performed during repacking.
2022-07-29 16:16:46 -06:00
Behdad Esfahbod
28c02b3768 [ot-font] Minor simplification 2022-07-29 15:55:16 -06:00
Behdad Esfahbod
149b030520 Fix thinko 2022-07-29 12:41:30 -06:00
Behdad Esfahbod
bdbb8c297e Add test for previous commit 2022-07-29 12:04:28 -06:00
Behdad Esfahbod
f7677213d7 [SingleSubstFormat1] Don't close glyphs in degenerate cases
Fixes https://oss-fuzz.com/testcase-detail/5145429829877760
2022-07-29 12:00:29 -06:00
Behdad Esfahbod
3da50c50aa Remove unused const 2022-07-29 11:57:15 -06:00
Khaled Hosny
0c4495e555 [meson] Don’t use f-string
It requires Python 3.6+
https://github.com/harfbuzz/harfbuzz/pull/3760#issuecomment-1198972788
2022-07-29 13:22:18 +02:00
Behdad Esfahbod
e51526bf06 [CompositeGlyph] Add HB_NO_BEYOND_64K 2022-07-28 09:53:30 -06:00
Behdad Esfahbod
6e6b9cf972 [use-table] Adjust main() code 2022-07-28 09:48:43 -06:00
Khaled Hosny
eaf7e5686c [meson] Use pathlib in gen-harfbuzzcc.py 2022-07-28 13:49:06 +02:00
Khaled Hosny
5df2347cf3 [meson] Don’t tamper with paths in amalgam files
Using os.path.basename() breaks files in subdirectories
(gsubgpos-graph.cc instead of graph/gsubgpos-graph.cc).

Use paths relative to current source dir instead.
2022-07-28 13:49:06 +02:00
Behdad Esfahbod
0c5b60acbd [use-table] Fix previous commit 2022-07-27 14:00:06 -06:00
Behdad Esfahbod
0788f77371 [use-table] Add a main() to print categories 2022-07-27 13:58:44 -06:00
Behdad Esfahbod
9aaa835ac1 [use-table] Regenerate with latest packtab 2022-07-27 12:24:43 -06:00
Behdad Esfahbod
3698ae25bf [harfbuzz-subset.cc] Update 2022-07-26 14:41:34 -06:00
Behdad Esfahbod
e2cc34e190 [subset/GPOS] Fix a fuzzer timeout test
Fixes https://oss-fuzz.com/testcase-detail/5234369031176192
2022-07-26 12:31:40 -06:00
Garret Rieger
241ebc9354 [repacker] fix include paths. 2022-07-26 12:22:17 -06:00
Garret Rieger
5f4adb9bf3 [repacker] fix to lookup size comparison. 2022-07-26 12:22:17 -06:00
Garret Rieger
6627204c4d [repacker] Makefile fix. 2022-07-26 12:22:17 -06:00
Garret Rieger
f56e66f3f0 [repacker] for ext promotion choose lookups from highest subtables per byte to lowest.
Attempts to roughly maximize the number of subtables that are non-ext.
2022-07-26 12:22:17 -06:00
Garret Rieger
9d0b2da51b [repacker] count subtable size in each group of consecutive layers for extension promotion decisions.
Enforce that the following groups are all <64k in size:
- LookupList + Lookups
- Lookups + SubTables
- SubTables + Descendants
2022-07-26 12:22:17 -06:00
Garret Rieger
3d37b9f4db [repacker] when calculating 16bit space size also consider ext lookup subtables. 2022-07-26 12:22:17 -06:00
Garret Rieger
9db3beb721 [repacker] include LookupList size when calculating size of 16bit space for ext promotion decisions. 2022-07-26 12:22:17 -06:00
Garret Rieger
e0607af976 [repacker] Use extension promotion when repacking invoked via hb-subset-repacker (eg. from fonttools). 2022-07-26 12:22:17 -06:00
Garret Rieger
8d611a7fd0 [repacker] remove temporary visibility overrides in gsubgpos. 2022-07-26 12:22:17 -06:00
Garret Rieger
7de136f8a8 [repacker] add ext promotion test. 2022-07-26 12:22:17 -06:00
Garret Rieger
c38896e07c [repacker] todo. 2022-07-26 12:22:17 -06:00
Garret Rieger
ad0041f5f7 [repacker] Add basic version of the extension promotion selection algorithm. 2022-07-26 12:22:17 -06:00
Garret Rieger
0b6ca424fc [repacker] fix GSTAR sanitize. 2022-07-26 12:22:17 -06:00
Garret Rieger
11709f0fbe [repacker] support extension promotion in 24bit GSUB/GPOS. 2022-07-26 12:22:17 -06:00
Garret Rieger
b37374b04f [repacker] save buffer reference (not copy). 2022-07-26 12:22:17 -06:00
Garret Rieger
ae290ff4fe [repacker] add sanitization for GSUB/LookupList/Lookup during extension promotion. 2022-07-26 12:22:17 -06:00
Garret Rieger
ce03c3538a [repacker] add make_extension_context_t. 2022-07-26 12:22:17 -06:00
Garret Rieger
ebb64b50da [repacker] size buffer correctly. 2022-07-26 12:22:17 -06:00