|
4afcdf67
|
2022-11-22T12:56:48
|
|
More hb_memcpy
|
|
dd1ba328
|
2022-11-21T23:20:59
|
|
[repacker] fix fuzzer timeout.
For https://oss-fuzz.com/testcase-detail/5845846876356608. Only process the set of unique overflows.
|
|
02b76393
|
2022-10-29T11:15:03
|
|
[config] Re-enable BORING_EXPANSION
Only the non-experimental parts (currently avar2) are
enabled by default.
|
|
c813f842
|
2022-10-20T19:45:23
|
|
Make build work for arm-none-eabi
|
|
9559d3c1
|
2022-10-11T19:49:01
|
|
[repacker] fix incorrect coverage table size estimation.
During splitting of PairPosFormat2 the code was assuming the maximum size of the generated coverage table would be equal too the current size. This is incorrect size the new coverage table may not preserve the ranges found in the original coverage table (since we are splitting based on class, not coverage) and in the worst case may convert from format2 to format1. So use the size of a format1 table as the max size.
|
|
99f4668e
|
2022-09-29T19:39:59
|
|
[repacker] use mutable copies of Coverage/ClassDef in MarkBasePos shrink operation.
Also make mutable copies (when needed) of the top level subtables during a split operation.
|
|
56c46709
|
2022-09-20T17:39:54
|
|
[subset] Fix compiler warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3823
|
|
a91bfeed
|
2022-08-18T22:01:48
|
|
[repacker] comment cleanup.
|
|
bf28b84a
|
2022-08-18T01:51:37
|
|
[repacker] cleanup unused base_array_id.
|
|
31976bfb
|
2022-08-18T01:50:35
|
|
[repacker] cleanup unused base_array_links.
|
|
6f5c52b6
|
2022-08-18T01:48:10
|
|
[repacker] optimize AnchorMatrix::clone.
Previous runtime is O(n^2) reduced to O(n).
|
|
29e3b246
|
2022-08-18T01:19:54
|
|
[repacker] optimzie remove_real_links as it's a hot method.
|
|
46b5dbd7
|
2022-08-18T01:18:16
|
|
[repacker] optimize index_for_offset.
|
|
52303638
|
2022-08-18T01:10:42
|
|
[repacker] correct size calculation for MarkBasePosFormat1.
|
|
ac1a853a
|
2022-08-18T00:55:47
|
|
[repacker] implement sanitize methods for MarkBasePos.
|
|
a3ed9f90
|
2022-08-17T23:39:11
|
|
[repacker] fix graph comparison, and mark base pos generation for the tests.
|
|
b46ced95
|
2022-08-17T17:51:02
|
|
[repacker] correct MarkArray size calculation.
|
|
36c76c27
|
2022-08-17T17:30:21
|
|
[repacker] when clearing links in MarkArray, also clear parents of the children.
|
|
8c3db8bd
|
2022-08-17T00:36:23
|
|
[repacker] more progress on MarkBasePos tests.
|
|
1405f96b
|
2022-08-15T23:48:00
|
|
[repacker] change run_resolve_overflow_test to check for graph equivalence.
Replaces a check for an exact match on the final serialized bytes. The previous check enforced equivalent topological sorting between result and expected, but we only really care that the graph's are equivalent and don't overflow.
|
|
07fd0528
|
2022-08-15T23:16:51
|
|
[repacker] add graph equality check.
Does not compare topological sorting, but looks for equivalence of the two graphs.
|
|
5cf2a25a
|
2022-08-15T22:49:24
|
|
[repacker] Expose on internal method in the repacker that allows the caller to pass in/out a graph.
Will be used in testing so we can compare graphs instead of packed result.
|
|
c414ef29
|
2022-08-15T22:10:37
|
|
[repacker] Implement MarkArray::shrink.
|
|
f8b55205
|
2022-08-11T23:09:36
|
|
[repacker] Add AnchorMatrix::shrink.
|
|
bbe14417
|
2022-08-11T22:53:30
|
|
[repacker] Begin implementing MarkBasePosFormat1::shrink.
|
|
c9ddf081
|
2022-08-11T22:34:59
|
|
[repacker] Implement AnchorMatrix::clone.
|
|
5ea3c0be
|
2022-08-11T22:21:28
|
|
[repacker] Implement MarkArray::clone.
|
|
0083fd10
|
2022-08-11T22:09:46
|
|
[repacker] add as_table() helper to graph.
|
|
b00eb776
|
2022-08-11T20:33:21
|
|
[repack] Add add_link helper to graph.
|
|
1acd2a8b
|
2022-08-11T20:22:31
|
|
[repacker] implement MarkBasePosFormat1::clone_range.
|
|
cf817f3d
|
2022-08-11T19:26:59
|
|
[repacker] Hook up MarkBasePos splitting.
|
|
4418beac
|
2022-08-11T19:08:04
|
|
[repacker] start implmenting MarkBasePos splitting.
|
|
fa46dbca
|
2022-08-08T17:07:14
|
|
[repacker] Make actuate_subtable_split internal.
|
|
fe15f255
|
2022-08-08T16:57:28
|
|
[repacker] use position instead of memory address as key in device_tables map.
|
|
163fbf0b
|
2022-08-05T23:37:11
|
|
[repacker] Check for nullptr's before sanitizing.
|
|
13253233
|
2022-08-05T23:15:10
|
|
[repacker] in PairPosFormat2 splitting use the max estimated coverage/classdef size for sizing serialization buffers.
|
|
dde0a2b0
|
2022-08-05T22:30:37
|
|
[repacker] track estimated coverage size during PairPosFormat1 split point analysis.
|
|
b37e8bef
|
2022-08-05T22:16:20
|
|
[repacker] count size of the current class at the split point in the next segment.
|
|
0e48a65d
|
2022-08-05T20:19:11
|
|
[repacker] estimate size of classDef1 and coverage during PairPos2 split point analysis.
|
|
2264df6d
|
2022-08-05T18:33:03
|
|
[repacker] add utility that can calculate the size of Coverage+ClassDef via incremental class inclusion.
|
|
5d824c09
|
2022-08-05T01:37:14
|
|
[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.
|
|
e1ab3550
|
2022-08-05T01:25:16
|
|
[repacker] correct lookup link insertion.
|
|
a733a9af
|
2022-08-05T00:32:47
|
|
[repacker] insert new subtables immediately after the subtable they split from in the lookup.
|
|
506547c9
|
2022-08-04T21:36:21
|
|
[repacker] Use hb_pair_t constructor instead of hb_pair ().
hb_pair was causing corrupted gid values.
|
|
fdd1952c
|
2022-08-04T19:21:16
|
|
[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.
|
|
b154b1e4
|
2022-08-04T01:37:21
|
|
[repacker] pull out PairPosFormat1,2::do_split() into a common helper method.
|
|
88e0dd02
|
2022-08-04T01:03:07
|
|
[repacker] add sanitization for PairPosFormat2.
|
|
54fab21c
|
2022-08-03T21:57:37
|
|
[repacker] get basic pair pos 2 split test working.
|
|
60d6ffb3
|
2022-08-03T21:01:23
|
|
[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.
|
|
6be15242
|
2022-08-03T19:02:20
|
|
[repacker] add basic test for PairPos2 splitting.
|
|
65ed82fd
|
2022-08-02T22:22:42
|
|
[repacker] PairPosFormat2::do_split.
|
|
f43055f3
|
2022-08-02T22:16:29
|
|
[repacker] Implement PairPosFormat2::shrink.
|
|
9f2a4464
|
2022-08-02T21:47:53
|
|
[repack] implement device table transfer for PairPosFormat2.
|
|
22eae32b
|
2022-08-02T21:04:38
|
|
[repacker] add classDef1 clone_range to PairPosFormat2 split.
|
|
68b90153
|
2022-08-02T20:58:35
|
|
[repacker] Add class def sanitize and range cloning.
|
|
ca0df565
|
2022-08-02T20:04:46
|
|
[repacker] extract coverage cloning into helper.
|
|
7f4b2037
|
2022-08-02T18:43:25
|
|
[repacker] include size of device tables when determining PairPos2 split points.
|
|
58fdbd8e
|
2022-07-30T02:05:15
|
|
[repacker] begin adding PairPosFormat2 splitting support.
|
|
a0111e4f
|
2022-07-30T12:09:45
|
|
[graph] Fix warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3766
|
|
9578c44e
|
2022-07-29T21:58:24
|
|
[repacker] add HB_FALLTRHOUGH.
|
|
6a5e2cb2
|
2022-07-29T20:38:53
|
|
[repacker] add todo.
|
|
14f95ee0
|
2022-07-29T20:09:52
|
|
[repacker] re-count shared node sizes in split PairPos segments.
|
|
3b91fb2a
|
2022-07-29T20:04:42
|
|
[repacker] cleanup todo.
|
|
a0b8893e
|
2022-07-29T19:58:51
|
|
[repacker] add Coverage sanitize.
|
|
38846f41
|
2022-07-29T18:30:24
|
|
[repacker] more TODO cleanup.
|
|
46c1fa7d
|
2022-07-29T18:29:12
|
|
[repacker] sanitize PairPos during subtable extension.
|
|
fb3f6ad7
|
2022-07-29T00:25:19
|
|
[repacker] ensure lookup map is updated when lookup memory location changes.
|
|
f1bfb658
|
2022-07-28T21:01:41
|
|
[repacker] cleanup debug prints.
|
|
65afed04
|
2022-07-28T20:54:28
|
|
[repacker] more bug fixes.
|
|
1002a3dc
|
2022-07-28T20:17:36
|
|
[repacker] bug fixes.
|
|
a5c2c8c1
|
2022-07-28T01:27:55
|
|
[repack] fix incorrect shrink.
|
|
d589ce68
|
2022-07-28T01:04:37
|
|
[repacker] add extension subtable when needed while adding new PairPos table's.
|
|
5024d4de
|
2022-07-28T00:55:36
|
|
[repack] more PairPos split implementation.
|
|
510b8ab1
|
2022-07-27T23:30:20
|
|
[repack] link new coverage in PairPosFormat1::clone_range.
|
|
29cb8818
|
2022-07-27T21:02:48
|
|
[repacker] new coverage serialization in PairPosFormat1.
|
|
8d63f60e
|
2022-07-27T20:36:20
|
|
[repack] add graph_t::move_child helper function.
|
|
8e5fffc4
|
2022-07-27T20:00:00
|
|
[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.
|
|
bf0986c7
|
2022-07-27T19:33:46
|
|
[repack] sketch splitting mechanism for PairPosFormat1.
|
|
f6a242b6
|
2022-07-27T18:58:41
|
|
[repacker] begin adding PairPos splitting support.
|
|
241ebc93
|
2022-07-26T00:04:20
|
|
[repacker] fix include paths.
|
|
9d0b2da5
|
2022-07-25T20:46:49
|
|
[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
|
|
9db3beb7
|
2022-07-25T19:42:58
|
|
[repacker] include LookupList size when calculating size of 16bit space for ext promotion decisions.
|
|
8d611a7f
|
2022-07-22T22:49:40
|
|
[repacker] remove temporary visibility overrides in gsubgpos.
|
|
7de136f8
|
2022-07-22T21:04:34
|
|
[repacker] add ext promotion test.
|
|
ad0041f5
|
2022-07-21T22:50:14
|
|
[repacker] Add basic version of the extension promotion selection algorithm.
|
|
0b6ca424
|
2022-07-21T21:57:17
|
|
[repacker] fix GSTAR sanitize.
|
|
11709f0f
|
2022-07-21T21:54:42
|
|
[repacker] support extension promotion in 24bit GSUB/GPOS.
|
|
b37374b0
|
2022-07-21T21:50:23
|
|
[repacker] save buffer reference (not copy).
|
|
ae290ff4
|
2022-07-21T21:45:04
|
|
[repacker] add sanitization for GSUB/LookupList/Lookup during extension promotion.
|
|
ce03c353
|
2022-07-21T19:07:55
|
|
[repacker] add make_extension_context_t.
|
|
ebb64b50
|
2022-07-21T18:36:20
|
|
[repacker] size buffer correctly.
|
|
815bb82b
|
2022-07-20T18:17:29
|
|
[repack] fix incorrect extension object bounds.
|
|
7e6f6c3e
|
2022-07-20T03:26:29
|
|
[repack] fix new node bounds.
|
|
b1d38a6d
|
2022-07-19T23:33:16
|
|
[repack] WIP implement extension promotion mechanism.
|
|
3f7a74ff
|
2022-07-19T21:50:13
|
|
[repacker] WIP extension promotion implementation.
|
|
b4f561db
|
2022-07-06T18:49:23
|
|
[subset] Add some comments to find_space_roots/find_32_bit_roots methods.
|
|
401066bf
|
2022-07-06T18:44:40
|
|
[subset] Prepare the repacker for handling 24bit offsets in GSUB/GPOS.
The boring expansion (https://github.com/be-fonts/boring-expansion-spec) plans to introduce 24bit offsets into GSUB/GPOS. This changes the repacker to treat 24 bit offsets similar to 32 bit offsets and assign the top level 24 bit offsets into spaces to improve packing.
|
|
2674962c
|
2022-06-24T21:00:54
|
|
[repacker] Add comment to graph class.
|
|
7078560e
|
2022-06-24T19:20:20
|
|
[repacker] extract graph serialization code into a seperate file.
|
|
20b02a67
|
2022-06-24T18:58:17
|
|
[repacker] Begin splitting up the repacker implementation into several files.
|