src/test-repacker.cc


Log

Author Commit Date CI Message
Garret Rieger 441877f5 2021-12-09T16:38:05 [repacker] add test case for using max priority to resolve an overflow.
Garret Rieger fa966bcc 2021-12-06T12:54:19 [repacker] create repacker output buffer after final length is known. Don't rely on a buffer provided by the caller, as it may not be large enough.
Garret Rieger 9121ed0c 2021-11-30T13:45:22 [subset] Improve sharing of Ligature subtables. Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
Garret Rieger 5bfc7d10 2021-09-23T14:45:20 [repacker] remove VirtualOffset struct. Make and add_virtual_link () specialization of add_link() instead.
Garret Rieger bc4c5341 2021-09-23T14:41:42 [repacker] Add test for virtual links in the repacker.
Garret Rieger 7f0ede4f 2021-10-05T13:10:01 [repacker] refactor resolve overflow tests to use a helper.
Garret Rieger 7883b7ed 2021-10-05T12:46:59 [repacker] Add additional splitting spaces test. Fix issues it uncovered.
Garret Rieger 6265663d 2021-10-05T11:30:04 [repacker] add test for splitting spaces.
Garret Rieger 0dccbf36 2021-09-29T14:28:27 [repacker] Handle the case where a subgraph root has an incoming 32 and 16 bit edge. In this case the entire subgraph from that root will be duplicated.
Garret Rieger 816c5302 2021-09-28T16:04:27 [repacker] restrict 32 bit subgraph connected component search to only nodes reachable via directed links.
Garret Rieger 67eb222b 2021-09-28T13:36:06 [repacker] when assigning each connected subgraph a space, also isolate it. This will break any links coming from space 0 (ie. the 16 bit offset only space).
Garret Rieger 307acf7f 2021-09-28T12:08:18 [repacker] add space assignment based on connected components. Assign each connected component that is underneath one or more 32 bit offsets into a unique space. This ensures that 32 bit subgraphs which are connected are packed into the same space.
Garret Rieger efda2f14 2021-09-24T16:28:34 [repacker] fix bug in subgraph isolation. Prior to this fix id remapping at the end of the isolation operation was fed the old subgraph instead of the new one. Which results in object indices being remapped for the nodes outside of the new subgraph. Adds a test which detects this problem.
Garret Rieger 9247d24d 2021-09-22T16:00:02 [repacker] s/0/HB_TAG_NONE
Garret Rieger d0daa7a5 2021-09-09T10:25:43 [repacker] add a couple more complex isolation tests.
Garret Rieger 58facaad 2021-09-08T16:08:48 [repacker] put each 32 bit subgraph into it's own packing space. Each subgraph pointed to by a 32 bit offset should be packed into it's own space. This adds a space property to vertices which affects the distance calculation. This effectively places the distances for all of the nodes of a 32 bit subgraph into a distinct range. Thus all of the nodes of the subgraph will be packed together.
Garret Rieger 543a3f97 2021-09-08T15:07:02 [repacker] Add repacker test for subgraph isolation.
Garret Rieger 41bbf281 2021-09-08T10:14:00 [repacker] do extension subtable isolation before starting resolution attempts.
Behdad Esfahbod bb48bf52 2021-07-08T10:53:45 Rename misc uses of "free" In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
Garret Rieger 73ed59f7 2021-03-17T15:53:10 [subset] store errors in the serializer as a flag set. Make check_assign/check_equal specify the type of error to set.
Garret Rieger e2f14e81 2020-11-11T13:55:35 [subset] fix memory leaks in test-repacker.
Garret Rieger a7a86a6e 2020-11-06T16:22:48 [subset] Add prioritization offset resolution. Vertices can now be prioritized to force them to sort closer to their parent. The resolver will attempt to use this for overflows on non-shared vertices.
Garret Rieger b452b2c7 2020-11-06T15:37:05 [subset] refactor repacker graph to cache edge count and distances of vertices.
Garret Rieger 75414e82 2020-11-05T16:39:23 [subset] Add table duplication overflow resolution.
Garret Rieger 4c8dd41e 2020-11-05T09:21:25 [subset] re-write compute distances to use an array lookup for the distance map.
Garret Rieger aaa7873d 2020-11-02T16:16:27 [subset] add topological sort by closest distance via Dijkstra's algorithm.
Garret Rieger 8ebe5d73 2020-11-02T14:51:39 Implement will_overflow ().
Garret Rieger f4c78cc7 2020-10-30T10:29:51 [subset] Implement Kahn's algo for topological sorting instead of BFS.
Garret Rieger 00f393dc 2020-10-29T14:58:34 [subset] finish up BFS sort implementation.
Garret Rieger 1584d3cb 2020-10-28T17:49:09 [subset] Start a proof of concept implementation of the GSUB/GPOS offset overflow resolver.