Behdad Esfahbod
4ab7e579cb
Make HB_BORING_EXPANSION opt-in instead of opt-out
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3757
2022-08-12 12:23:48 -06: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