Garret Rieger
cf817f3d99
[repacker] Hook up MarkBasePos splitting.
2022-08-11 19:26:59 +00:00
Garret Rieger
4418beac93
[repacker] start implmenting MarkBasePos splitting.
2022-08-11 19:08:04 +00:00
Behdad Esfahbod
f4f7d691af
Merge pull request #3779 from harfbuzz/split_pair_pos_2
...
[repacker] Add PairPosFormat2 table splitting in the repacker.
2022-08-09 22:23:23 -06:00
Garret Rieger
fa46dbca9d
[repacker] Make actuate_subtable_split internal.
2022-08-08 17:07:14 +00:00
Garret Rieger
fe15f2559f
[repacker] use position instead of memory address as key in device_tables map.
2022-08-08 16:57:28 +00:00
Garret Rieger
163fbf0be1
[repacker] Check for nullptr's before sanitizing.
2022-08-05 23:37:11 +00:00
Garret Rieger
13253233f7
[repacker] in PairPosFormat2 splitting use the max estimated coverage/classdef size for sizing serialization buffers.
2022-08-05 23:15:10 +00:00
Garret Rieger
dde0a2b071
[repacker] track estimated coverage size during PairPosFormat1 split point analysis.
2022-08-05 22:30:37 +00:00
Garret Rieger
b37e8bef0e
[repacker] count size of the current class at the split point in the next segment.
2022-08-05 22:16:20 +00:00
Qunxin Liu
7fde6ab025
fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49790
2022-08-05 15:10:31 -06:00
Behdad Esfahbod
a4e0fd1685
[MultipleSubst] Rewrite serialize signature as single iterator
2022-08-05 15:05:51 -06:00
Behdad Esfahbod
65d28bc5a7
[MultipleSubst] Rewrite serialize() in terms of iterators
...
Unused still, and hence untested
2022-08-05 14:56:07 -06:00
Behdad Esfahbod
b57ea3b053
Revert "[iter] Use && in uses of is_source_of"
...
This reverts commit ccbba667a9
.
2022-08-05 14:29:27 -06:00
Garret Rieger
0e48a65d32
[repacker] estimate size of classDef1 and coverage during PairPos2 split point analysis.
2022-08-05 20:19:11 +00:00
Garret Rieger
2264df6da3
[repacker] add utility that can calculate the size of Coverage+ClassDef via incremental class inclusion.
2022-08-05 18:33:03 +00:00
Behdad Esfahbod
ccbba667a9
[iter] Use && in uses of is_source_of
2022-08-05 11:51:51 -06:00
Behdad Esfahbod
8fb7cc1c63
[iter] Use && in is_sink_of uses
2022-08-05 11:49:29 -06:00
Garret Rieger
5d824c09c0
[repacker] during table splits don't mutate shared coverage/classdef in place.
...
If other subtables are sharing coverage with a subtable being split we have to duplicate the coverage/classdef tables before they are modified during the shrink operation.
2022-08-05 01:37:14 +00:00
Garret Rieger
e1ab355056
[repacker] correct lookup link insertion.
2022-08-05 01:25:16 +00:00
Garret Rieger
a733a9afa5
[repacker] insert new subtables immediately after the subtable they split from in the lookup.
2022-08-05 00:32:47 +00:00
Garret Rieger
506547c958
[repacker] Use hb_pair_t constructor instead of hb_pair ().
...
hb_pair was causing corrupted gid values.
2022-08-04 21:36:21 +00:00
Garret Rieger
fdd1952c75
[repacker] PairPosFormat2 splitting - fix coverage and classdef splitting.
...
The old code was splitting based on coverage index, but should have been splitting on class value.
2022-08-04 19:21:16 +00:00
Behdad Esfahbod
c67c1b745b
VarStore: simplify again
2022-08-04 11:42:22 -06:00
Behdad Esfahbod
914542bd18
Whitespace
2022-08-04 11:40:54 -06:00
Behdad Esfahbod
d7adc55e18
[ot-font] Allow 24bit glyphs in advance cache
2022-08-04 11:40:54 -06:00
Behdad Esfahbod
99070a734a
[cache] Use short instead of int if fits
2022-08-04 11:40:54 -06:00
Qunxin Liu
d831e935df
bug fix in VarData get_delta ()
...
when LONG_WORDS flag is set, item row is not computed correctly
lcursor should be interpreted as INT32
2022-08-04 11:40:42 -06:00
Garret Rieger
b154b1e4c3
[repacker] pull out PairPosFormat1,2::do_split() into a common helper method.
2022-08-04 01:37:21 +00:00
Garret Rieger
88e0dd02cb
[repacker] add sanitization for PairPosFormat2.
2022-08-04 01:03:07 +00:00
Garret Rieger
51a5060273
[repacker] add test for splitting a PairPos2 w/ device tables.
2022-08-03 22:30:42 +00:00
Garret Rieger
54fab21cb1
[repacker] get basic pair pos 2 split test working.
2022-08-03 21:57:37 +00:00
Garret Rieger
60d6ffb375
[repacker] always duplicate classDef2 when splitting a PairPos2.
...
Splits are done in a way that it shouldn't be possible to share the classDef2 between split PairPos2's so pre-emptively duplicate it.
2022-08-03 21:01:23 +00:00
Garret Rieger
6be152420f
[repacker] add basic test for PairPos2 splitting.
2022-08-03 19:02:20 +00:00
Behdad Esfahbod
b78546b1d2
[cache] Residual
2022-08-03 13:02:18 -06:00
Behdad Esfahbod
ec90d1e161
[cache] Add a non-threadsafe version
...
Use in hb-ft, since already mutex'ed.
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
f73c15ca6c
[atomic-int] Add operators for relaxed ops
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
86d1e22d4f
[atomic-ptr] Rename get
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
d3f2287e0b
[atomic-int] Rename get/set
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
c80e32972f
[mvar] Use VarIdx
2022-08-03 11:31:34 -06:00
Khaled Hosny
52bdc750c1
Revert "[meson] Use pathlib in gen-harfbuzzcc.py"
...
This reverts commit eaf7e5686c
.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3776
No idea what is going on, but lets restore the old code.
2022-08-03 10:40:57 +02:00
Garret Rieger
65ed82fde5
[repacker] PairPosFormat2::do_split.
2022-08-02 22:22:42 +00:00
Garret Rieger
f43055f35a
[repacker] Implement PairPosFormat2::shrink.
2022-08-02 22:16:29 +00:00
Khaled Hosny
16bfe6536b
[meson] use cpp.get_argument_syntax not cpp.get_id
...
To account for both MSVC and clang-cl.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3756
2022-08-03 00:07:40 +02:00
Garret Rieger
9f2a44640c
[repack] implement device table transfer for PairPosFormat2.
2022-08-02 21:47:53 +00:00
Garret Rieger
22eae32b3b
[repacker] add classDef1 clone_range to PairPosFormat2 split.
2022-08-02 21:04:38 +00:00
Garret Rieger
68b90153ea
[repacker] Add class def sanitize and range cloning.
2022-08-02 20:58:35 +00:00
Garret Rieger
ca0df565f7
[repacker] extract coverage cloning into helper.
2022-08-02 20:04:46 +00:00
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
Behdad Esfahbod
32c85b8c8c
[avar2] Fix mapping when coords length don't match
...
Ouch.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49407
2022-07-23 10:50:26 -06:00
Behdad Esfahbod
06c3ec0a19
[avar2] Minor sanitize rewrite
2022-07-23 10:45:28 -06:00
Behdad Esfahbod
f94a3ba1db
[varStore] Better protect against HB_NO_VAR builds
2022-07-23 10:36:08 -06:00
Behdad Esfahbod
17863bd16b
[config/avar2] add HB_NO_VARIATIONS2
2022-07-22 22:38:08 -06:00
Behdad Esfahbod
5a9c7930ef
Add HB_NO_BEYOND_64K
2022-07-22 21:33:31 -06:00
Behdad Esfahbod
c76fd3c5f9
[avar2] Add link to "Spec".
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
edca52c3b6
[avar2] Use a varStore cache
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
59f8afa73e
[avar2] Remove XXX item
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
d6c4f757a4
[avar2] Clamp out values
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
d0e2ad9297
[avar] Pre-alloc vector
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
2a877b554a
[avar2] First stab at mapping v2 values
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
c3eb6713e9
[avar2] Add v2 structure and sanitize
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
c9e843942e
[min/max] Don't forward argument
2022-07-22 09:01:28 -06:00
Behdad Esfahbod
cb5ca6be29
[ft] Actually call check_changed() from _changed()
...
Ouch!
Fixes https://github.com/harfbuzz/harfbuzz/issues/3746
2022-07-22 05:48:27 -06:00
Behdad Esfahbod
fd535a240b
[ft] Remove check_changed from get_glyph_shape()
...
Leftover.
2022-07-22 05:48:12 -06:00
Behdad Esfahbod
7cdde6a241
[ClassDef] Write a loop as range for
2022-07-21 17:18:45 -06:00
Behdad Esfahbod
0cc2f3c218
[algs] Remove hb_pair_t()
2022-07-21 16:46:45 -06:00
Behdad Esfahbod
9eab3ac72d
[CoverageFormat2] Remove hand-written loop
...
While on a fuzzer-found test case (added) that loop was faster,
on real fonts, including NotoNastaliq in our benchmark, it was
actually slower, which intuitively I would have expected.
Still no idea why on that fuzzer case it's faster though. :(
2022-07-21 12:36:53 -06:00
Behdad Esfahbod
bbb4db90dd
[Coverage/SingleSubst] Move hand-written loop to Coverage
2022-07-21 12:34:46 -06:00
Behdad Esfahbod
7b95783efb
[Coverage] Internal rename
2022-07-21 12:18:51 -06:00
Behdad Esfahbod
afa65f2903
[Coverage] Minor type change
2022-07-21 12:17:08 -06:00
Behdad Esfahbod
b38587aa0b
[Coverage] Internal renames
2022-07-21 12:14:06 -06:00
Behdad Esfahbod
84d38df828
[Coverage] Minor use range-based loop
2022-07-21 12:12:04 -06:00
Behdad Esfahbod
b017b73ffe
[Coverage] Minor remove a couple unnecessary as_array()'s
2022-07-21 12:06:55 -06:00
Behdad Esfahbod
9e650b4e0c
[Coverage] Speedup intersect_set
2022-07-21 12:01:52 -06:00
Behdad Esfahbod
efa388074d
[subset/SingleSubsetFormat1] Use Coverage.intersect_set
2022-07-21 11:52:36 -06:00
Behdad Esfahbod
00dfbbce1c
[Coverage] Rename and templatize intersected_coverage_glyphs
2022-07-21 11:45:05 -06:00
Behdad Esfahbod
d0eb273791
[subset/GSUB/GPOS] Use more intersected_coverage_glyphs()
2022-07-21 11:24:56 -06:00
Behdad Esfahbod
450d834679
[subset/PairPosFormat1] Speed up significantly
2022-07-21 11:05:35 -06:00
Behdad Esfahbod
5d7556e184
Revert "[subst/SingleSubstFormat1] Rewrite nicer"
...
This reverts commit bababe1072
.
The hand-written code is still much faster :(.
2022-07-21 10:58:36 -06:00
Behdad Esfahbod
71ce931e6d
[PairPos] Don't compute newFormat
...
It was wrong, because it would be writing wrong values.
Test suite doesn't seem to catch any.
2022-07-21 10:41:29 -06:00
Behdad Esfahbod
02ca025443
[layout] Add large_int to Types
2022-07-21 10:30:23 -06:00
Behdad Esfahbod
bababe1072
[subst/SingleSubstFormat1] Rewrite nicer
2022-07-21 10:25:27 -06:00
Behdad Esfahbod
cf123e6a0d
[Coverage] Add get_population ()
2022-07-21 10:24:04 -06:00
Behdad Esfahbod
2ad3c0c770
Fix uninitialized variable
2022-07-21 09:46:25 -06:00
Behdad Esfahbod
fa471043fc
[subset] Fix previous commit
2022-07-20 22:42:18 -06:00
Behdad Esfahbod
c4d2ef9004
[subset] Speed up subsetting of SingleSubstFormat1_3
2022-07-20 22:36:35 -06:00
Behdad Esfahbod
d01e6babe6
[subset] Speed up SingleSubstFormat1_3 closure
2022-07-20 22:17:33 -06:00
Qunxin Liu
0f80076937
[subset] Do not repeat COLR table closure
2022-07-20 19:17:34 -06:00
Behdad Esfahbod
9fc31db6fa
[blob] Initialize members if ever on the stack
2022-07-20 16:03:02 -06:00
Behdad Esfahbod
60a9175f2c
[blob] Remove fini_shallow()
2022-07-20 15:59:46 -06:00
Behdad Esfahbod
bcd59b5142
[set/map] Remove init_shallow/fini_shallow()
2022-07-20 15:58:28 -06:00
Behdad Esfahbod
79b23cc25d
Fix another leak
2022-07-20 15:38:34 -06:00
Behdad Esfahbod
3fad942ee2
Try fix leak
2022-07-20 15:26:32 -06:00
Behdad Esfahbod
e1b5f2f806
[object] Call destructor in hb_object_destroy()
2022-07-20 15:07:55 -06:00
Behdad Esfahbod
9ea4ab6051
[object] Call constructor
2022-07-20 14:57:32 -06:00
Behdad Esfahbod
61c0438425
[map] Allow geting non-const value pointer out with has()
2022-07-20 14:43:58 -06:00
Behdad Esfahbod
00cfc5c17d
[map] Don't set out value in has() if not found
2022-07-20 14:38:28 -06:00
Behdad Esfahbod
485f043211
[map] Enable using hashmap with unique_ptr
2022-07-20 14:34:55 -06:00
Behdad Esfahbod
53fd4c9236
[set] A variable rename
2022-07-20 13:33:49 -06:00
Behdad Esfahbod
6826b2c3fd
[gsubgpos/closure] Minor condition use bool operator
2022-07-20 13:25:34 -06:00
Behdad Esfahbod
55a1e0bb11
[ot-map] Use hb_array for a return value
2022-07-20 13:15:55 -06:00
Behdad Esfahbod
8d923363db
[layout] Reduce number of closure rounds
2022-07-20 12:09:00 -06:00