Commit Graph

11007 Commits

Author SHA1 Message Date
Behdad Esfahbod ee18ae3b76 [avar] Minor move code around 2022-08-02 12:56:06 -06:00
Garret Rieger 7f4b2037a5 [repacker] include size of device tables when determining PairPos2 split points. 2022-08-02 18:43:25 +00:00
Behdad Esfahbod 826639fab2 [src] Add test-use-table
Fixes https://github.com/harfbuzz/harfbuzz/issues/3758
2022-08-02 12:18:18 -06:00
Garret Rieger 58fdbd8e5d [repacker] begin adding PairPosFormat2 splitting support. 2022-08-02 17:32:13 +00:00
Behdad Esfahbod e387b3acd3 [ft] Try harder 2022-08-02 10:02:48 -06:00
Khaled Hosny 40a3468906 hb-ft: cast to float to help windows sqrtf 2022-08-02 10:02:48 -06:00
Behdad Esfahbod 6549aec89d [SingleSubstFormat1] Help avoid timeouts in closure() some more
For https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49712
2022-08-01 13:11:14 -06:00
Behdad Esfahbod ba9b20534c [ft] Try working around fonts with transform set
Fixes https://github.com/harfbuzz/harfbuzz/issues/3772
2022-08-01 12:42:05 -06:00
psykose 04d28d94e5 [repacker] fix signedness of char in tests 2022-08-01 11:48:57 -06:00
Khaled Hosny f1f2be776b 5.1.0 2022-07-31 15:48:32 +02:00
Khaled Hosny d6e55f1baf [automake] Use LANG=C when generating harfbuzz*.cc
Since `sort` is locale-dependent.
2022-07-30 23:35:47 +02:00
Behdad Esfahbod a722b3e666 [shape] Only add any unsafe-to-concat flag if requested
Previously it was confusing as random incorrect flags were produced.
2022-07-30 14:33:33 -06:00
Behdad Esfahbod 0a31cfb225 [buffer] Fix produce-tatweel enum value 2022-07-30 14:32:58 -06:00
Behdad Esfahbod a0111e4fab [graph] Fix warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3766
2022-07-30 12:09:45 -06:00
Behdad Esfahbod 083d4ef5c4 [harfbuzz-subset.cc] Revert back the sort order
Generator seems unstable.
2022-07-30 11:53:56 -06:00
Behdad Esfahbod 065f1e33c8
Merge pull request #3763 from harfbuzz/split_pair_pos
[repacker] Add ability for repacker to pre split PairPosFormat1 subtables.
2022-07-30 11:09:33 -06:00
Behdad Esfahbod 7c9e1ffa7c
Merge pull request #3762 from harfbuzz/safe-to-kashida
Prototype glyph flag safe-to-kashida
2022-07-30 10:33:27 -06:00
Behdad Esfahbod f43dadb8ee Rename kashida -> tatweel 2022-07-30 10:23:03 -06:00
Behdad Esfahbod 73c3ac9172 Document kashida stuff 2022-07-30 10:21:34 -06:00
Behdad Esfahbod d277addb2f [buffer] Add HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_KASHIDA 2022-07-30 10:10:21 -06:00
Behdad Esfahbod 915e12ccbb Prototype glyph flag safe-to-kashida
Fixes https://github.com/harfbuzz/harfbuzz/issues/3721
2022-07-30 10:05:36 -06:00
Behdad Esfahbod 5e31a582c9 [emoji] Bump compression level 2022-07-30 00:09:33 -06:00
Behdad Esfahbod 56a5bc3bd0 [emoji] Regenerate test data
Fix generator.
2022-07-30 00:08:44 -06:00
Behdad Esfahbod 90a3355e66 [ucd-table] Use more compact compression numbers
Doesn't show any slowdown in benchmarks.
2022-07-30 00:01:50 -06:00
Behdad Esfahbod 23dbd35ca3
Merge branch 'main' into split_pair_pos 2022-07-29 19:51:57 -06:00
Behdad Esfahbod a5d9012e94 Revert "[ot-font] Minor simplification"
This reverts commit 28c02b3768.

Old code was used in case of memory allocation failure (as shown
by fuzzers...)
2022-07-29 19:51:00 -06:00
Garret Rieger 9578c44ea2 [repacker] add HB_FALLTRHOUGH. 2022-07-29 22:21:32 +00:00
Garret Rieger 6a5e2cb2f8 [repacker] add todo. 2022-07-29 22:21:32 +00:00
Garret Rieger 14f95ee0cf [repacker] re-count shared node sizes in split PairPos segments. 2022-07-29 22:21:32 +00:00
Garret Rieger 3b91fb2a9f [repacker] cleanup todo. 2022-07-29 22:21:31 +00:00
Garret Rieger a0b8893e46 [repacker] add Coverage sanitize. 2022-07-29 22:21:31 +00:00
Garret Rieger 38846f41d3 [repacker] more TODO cleanup. 2022-07-29 22:21:31 +00:00
Garret Rieger 46c1fa7d1b [repacker] sanitize PairPos during subtable extension. 2022-07-29 22:21:31 +00:00
Garret Rieger 2a5902ee50 [repacker] cleanup. 2022-07-29 22:21:31 +00:00
Garret Rieger 674f0194a3 [repacker] add extension pairpos split test. 2022-07-29 22:21:31 +00:00
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 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 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
Garret Rieger 815bb82b4d [repack] fix incorrect extension object bounds. 2022-07-26 12:22:17 -06:00
Garret Rieger 7e6f6c3e88 [repack] fix new node bounds. 2022-07-26 12:22:17 -06:00
Garret Rieger b1d38a6d0b [repack] WIP implement extension promotion mechanism. 2022-07-26 12:22:17 -06:00
Garret Rieger 3f7a74ff40 [repacker] WIP extension promotion implementation. 2022-07-26 12:22:17 -06:00
Behdad Esfahbod 1945b400da [cpluscplus] Wrap hb-subset types as well
Also changes signature of get_user_data of hb.h types to take const
object. This is safe.
2022-07-25 10:45:55 -06:00
Behdad Esfahbod 1ac21246a7 [hb-ft] Fix bitmap font rendering with hb_ft_font_changed()
Fixes https://github.com/harfbuzz/harfbuzz/issues/3754
Fixes https://github.com/harfbuzz/harfbuzz/issues/3755
2022-07-25 08:40:02 -06:00
Behdad Esfahbod 94de328011 [GSUB/GPOS] Adjust buffer message 2022-07-24 18:51:55 -06:00
Behdad Esfahbod bc80e4b923 [GSUB/GPOS] More buffer message for contextuals
Fixes https://github.com/harfbuzz/harfbuzz/issues/3753
2022-07-24 18:50:14 -06:00
Behdad Esfahbod 59b05359cd [GSUB/GPOS] Add more buffer messages
Behind HB_BUFFER_MESSAGE_MORE.

https://github.com/harfbuzz/harfbuzz/pull/3495
2022-07-24 18:39:30 -06:00
Behdad Esfahbod 0722b627f4 [buffer] Return delta from sync_so_far 2022-07-24 17:35:44 -06:00
Behdad Esfahbod c55c019771 [buffer] Add assertions of buffer sync status to message_impl 2022-07-24 16:30:33 -06:00
Behdad Esfahbod da9edce84c [buffer] Add sync_so_far()
This removes separate out-buffer, at the cost of possibly changing
idx.
2022-07-24 16:30:19 -06:00
Khaled Hosny cbccadba8d 5.0.1 2022-07-23 22:09:06 +02:00
Behdad Esfahbod 61d0c54701 [ft] Pass design, not normalized, coords to freetype
Needed for avar2 to work.
2022-07-23 13:26:18 -06:00
Behdad Esfahbod 473a5e5651 [font] Fix design-coords
Ouch!
2022-07-23 13:26:18 -06:00
Khaled Hosny 40b21edf48 5.0.0 2022-07-23 19:53:14 +02:00
Behdad Esfahbod 4cb83967aa [subset/ClassDefFormat2] Fix timeout
Fixes https://oss-fuzz.com/testcase-detail/5417800474165248
2022-07-23 11:00:20 -06:00