|
330c32f9
|
2023-11-10T12:27:48
|
|
[graph] Another preallocation
|
|
9c4d3c3c
|
2023-11-10T12:24:26
|
|
[graph] Pre-alloc priority-heap array
|
|
3a9262cc
|
2023-11-04T12:52:46
|
|
[sanitize] More hb_barrier() annotations
|
|
52bc78e7
|
2023-10-10T21:44:52
|
|
s/PairPos/MarkBasePos/ in MarkBasePos repacking implementation.
|
|
1f395cba
|
2023-10-12T10:06:00
|
|
[instancer] templatize the priority queue, use custom type for varstore
when instantiating varstore, we need to pop a tuple like
(combined_gain, i, j), if combined gain is the same then we compare the
value of i, and then j. So we'd like to use custom type as the key when
popping from the queue. This would match fonttool's algorithm cause it
uses heappop().
|
|
17ee3cd7
|
2023-09-10T07:29:08
|
|
fix warning with unsigned long
|
|
a1f034ea
|
2023-08-28T21:10:16
|
|
[repacker] fix fuzzer failure.
Fixes: https://oss-fuzz.com/testcase-detail/6490945267564544
|
|
c28fdc39
|
2023-08-23T22:16:39
|
|
[repacker] fix bot failure.
|
|
5587247d
|
2023-08-23T21:54:15
|
|
[repacker] create only one extension subtable per physical subtable.
During extension promotion when multiple lookups refer to a shared subtable node create and reuse a single extension subtable for it. Fixes: https://github.com/fonttools/fonttools/issues/3260.
|
|
ca906e87
|
2023-08-16T23:37:03
|
|
[repacker] fix fuzzer timeout.
Corrects some mistakes in the handling of incoming_edges_ when memory allocation failures happen.
|
|
91c449a6
|
2023-08-02T14:40:55
|
|
[graph] Make space_for non-recursive
It was tail-recursive so perhaps the compiler did the same.
Anyway, make it explicit now.
|
|
70b3fbed
|
2023-08-01T15:16:16
|
|
[graph] Fix invalid read when map gets resized
I don't fully understand how the old code was wrong, since
*v should be evaluated before the set() method call.
Yet this seems to fix a bug that could be reproduced
with HB_DEBUG_SUBSET_REPACK enabled and the following:
$ hb-repacker-fuzzer test/fuzzing/graphs/clusterfuzz-testcase-minimized-hb-repacker-fuzzer-6419865171525632
|
|
94d4283b
|
2023-08-01T15:05:17
|
|
[graph] Handle a malloc fail
Fixes https://oss-fuzz.com/testcase-detail/4579249263345664
|
|
603920e9
|
2023-08-01T14:58:33
|
|
[graph] Minor asserts
|
|
8d00476f
|
2023-08-01T14:27:37
|
|
[graph] Minor restructure a condition
|
|
7946984b
|
2023-08-01T14:18:03
|
|
[graph] More assert
|
|
3b386c37
|
2023-08-01T14:12:43
|
|
[graph] Minor assert
|
|
07e70330
|
2023-08-01T12:25:45
|
|
[graph] Error check
|
|
7a9aac1a
|
2023-08-01T12:05:22
|
|
[graph] Fixes to parent handling
|
|
23838e5a
|
2023-07-29T13:20:14
|
|
[graph] Error handling
|
|
04f49092
|
2023-07-28T14:37:52
|
|
[graph] Use a move instead of swap
|
|
3bedb0ee
|
2023-07-27T16:04:01
|
|
[graph] Minor rename
|
|
bb1f53c2
|
2023-07-27T13:29:56
|
|
[graph] Try fixing infinite loop found by CIFuzz under malloc fail
|
|
db3314c1
|
2023-07-27T13:20:32
|
|
[graph] Minor space type change
|
|
6bb61708
|
2023-07-27T13:02:55
|
|
[graph] Try fixing bots
|
|
1b5abb17
|
2023-07-27T12:41:43
|
|
[graph] Speed-up vertices having only one parent
|
|
f3d0b11d
|
2023-07-27T12:20:39
|
|
[graph] Make parents private
|
|
d3b997ee
|
2023-07-26T15:39:14
|
|
[graph] Use a hb_map_t to keep parents, instead of hb_vector_t
In some fonts, for example Noto Duployan-Regular, nodes can
have over a thousand parents... Speeds up 10% subsetting.
|
|
326d319f
|
2023-07-15T13:14:34
|
|
[graph] Micro-optimize
|
|
548230e4
|
2023-07-15T13:13:16
|
|
[graph] Early return from a function
|
|
09706b04
|
2023-07-15T13:11:04
|
|
[graph] Add a pre-alloc to map
|
|
d1ddfc4d
|
2023-07-14T14:52:43
|
|
[graph] Use move instead of swap
|
|
07cb6bf8
|
2023-07-14T13:38:33
|
|
[graph] Minor, type
|
|
867640af
|
2023-07-14T13:09:16
|
|
Revert "[set] Add test_and_add / test_and_del"
This reverts commit de1237fbf2660b5952dde4db171a62d9b1a77c92.
This seems to be a net loss.
|
|
10b776b0
|
2023-07-14T13:08:19
|
|
[graph] Micro-optimize
|
|
de1237fb
|
2023-07-14T12:38:56
|
|
[set] Add test_and_add / test_and_del
Use in graph.
|
|
7f1ff9c8
|
2023-07-14T12:22:24
|
|
[graph] Micro-optimize array access
|
|
11308c4d
|
2023-06-08T14:51:18
|
|
[graph] Remove manual destruction
Happens automatically by destructor.
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
ada1e9a9
|
2023-06-06T14:46:06
|
|
[graph/serialize] Handle empty blob
Fixes https://oss-fuzz.com/testcase-detail/4877513265119232
|
|
ca27925d
|
2023-06-03T16:18:15
|
|
Use hb_codepoint_pair_t in more places
|
|
ff326fbe
|
2023-05-29T21:31:01
|
|
[repacker] check the result of add_buffer() in other places where it's called.
|
|
20c564bc
|
2023-05-26T23:04:25
|
|
[repacker] Fix fuzzer memory leak.
https://oss-fuzz.com/testcase-detail/6419865171525632
|
|
3c2a925b
|
2023-05-08T09:43:01
|
|
[graph] Micro-optimize
|
|
3f9eb03b
|
2023-05-01T12:49:40
|
|
[graph] Micro-optimize
|
|
b3fed4fa
|
2023-04-27T22:13:30
|
|
[repacker] fix fuzzer found memory leak.
Fixes https://oss-fuzz.com/testcase-detail/5196242811748352
|
|
e4fff64c
|
2023-01-24T00:52:26
|
|
[repacker] check duplicate() for success.
Fixes fuzzer testcase https://oss-fuzz.com/testcase-detail/5475787333828608.
|
|
ed023f66
|
2023-01-12T17:04:24
|
|
Enable -Wformat-signedness
And fix the codebase.
|
|
35233d25
|
2022-12-07T00:47:28
|
|
[repacker] fix fuzzer reported stack overflow.
Fixes https://oss-fuzz.com/testcase-detail/6014493291577344.
|
|
f1d34893
|
2022-12-05T19:33:15
|
|
[repacker] bail on failure to alloc assigned_bytes set.
Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/5390364397928448.
|
|
239a5aca
|
2022-12-05T19:15:36
|
|
[repacker] don't allow references to the null object in graph.
Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/6714085985353728
|
|
2cdaedaf
|
2022-12-03T10:16:35
|
|
Use hb_enumerate in more places
|
|
de5a6213
|
2022-12-01T23:37:16
|
|
[repacker] enforce root node having no incoming edges.
|
|
30e405e4
|
2022-12-01T22:12:59
|
|
[repacker] ensure link obj indices are valid.
|
|
554ed06f
|
2022-12-01T21:51:17
|
|
[repacker] add cycle detection to the graph sort.
This allows us to bail early if the graph is not acyclic.
|
|
9e99d084
|
2022-09-08T23:19:02
|
|
[repacker] validate link widths during repacker setup.
|
|
edf7a295
|
2022-09-08T22:59:34
|
|
[repacker] Validate link positions before running the repacker.
|
|
deca30b2
|
2022-09-08T21:10:06
|
|
[repacker] get repacker fuzzer working.
Additionally add helper method that allows a graph to be saved as a fuzzer seed.
|
|
985b19f6
|
2022-09-07T22:21:16
|
|
[repacker] begin implementing a fuzzer for the repacker api.
|
|
915c1a00
|
2022-11-26T14:48:57
|
|
[vector] Add remove_unordered
Saves 5% in NotoNastaliq/1000 subset benchmark.
|
|
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.
|