src/graph


Log

Author Commit Date CI Message
Garret Rieger 0083fd10 2022-08-11T22:09:46 [repacker] add as_table() helper to graph.
Garret Rieger b00eb776 2022-08-11T20:33:21 [repack] Add add_link helper to graph.
Garret Rieger 1acd2a8b 2022-08-11T20:22:31 [repacker] implement MarkBasePosFormat1::clone_range.
Garret Rieger cf817f3d 2022-08-11T19:26:59 [repacker] Hook up MarkBasePos splitting.
Garret Rieger 4418beac 2022-08-11T19:08:04 [repacker] start implmenting MarkBasePos splitting.
Garret Rieger fa46dbca 2022-08-08T17:07:14 [repacker] Make actuate_subtable_split internal.
Garret Rieger fe15f255 2022-08-08T16:57:28 [repacker] use position instead of memory address as key in device_tables map.
Garret Rieger 163fbf0b 2022-08-05T23:37:11 [repacker] Check for nullptr's before sanitizing.
Garret Rieger 13253233 2022-08-05T23:15:10 [repacker] in PairPosFormat2 splitting use the max estimated coverage/classdef size for sizing serialization buffers.
Garret Rieger dde0a2b0 2022-08-05T22:30:37 [repacker] track estimated coverage size during PairPosFormat1 split point analysis.
Garret Rieger b37e8bef 2022-08-05T22:16:20 [repacker] count size of the current class at the split point in the next segment.
Garret Rieger 0e48a65d 2022-08-05T20:19:11 [repacker] estimate size of classDef1 and coverage during PairPos2 split point analysis.
Garret Rieger 2264df6d 2022-08-05T18:33:03 [repacker] add utility that can calculate the size of Coverage+ClassDef via incremental class inclusion.
Garret Rieger 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.
Garret Rieger e1ab3550 2022-08-05T01:25:16 [repacker] correct lookup link insertion.
Garret Rieger a733a9af 2022-08-05T00:32:47 [repacker] insert new subtables immediately after the subtable they split from in the lookup.
Garret Rieger 506547c9 2022-08-04T21:36:21 [repacker] Use hb_pair_t constructor instead of hb_pair (). hb_pair was causing corrupted gid values.
Garret Rieger 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.
Garret Rieger b154b1e4 2022-08-04T01:37:21 [repacker] pull out PairPosFormat1,2::do_split() into a common helper method.
Garret Rieger 88e0dd02 2022-08-04T01:03:07 [repacker] add sanitization for PairPosFormat2.
Garret Rieger 54fab21c 2022-08-03T21:57:37 [repacker] get basic pair pos 2 split test working.
Garret Rieger 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.
Garret Rieger 6be15242 2022-08-03T19:02:20 [repacker] add basic test for PairPos2 splitting.
Garret Rieger 65ed82fd 2022-08-02T22:22:42 [repacker] PairPosFormat2::do_split.
Garret Rieger f43055f3 2022-08-02T22:16:29 [repacker] Implement PairPosFormat2::shrink.
Garret Rieger 9f2a4464 2022-08-02T21:47:53 [repack] implement device table transfer for PairPosFormat2.
Garret Rieger 22eae32b 2022-08-02T21:04:38 [repacker] add classDef1 clone_range to PairPosFormat2 split.
Garret Rieger 68b90153 2022-08-02T20:58:35 [repacker] Add class def sanitize and range cloning.
Garret Rieger ca0df565 2022-08-02T20:04:46 [repacker] extract coverage cloning into helper.
Garret Rieger 7f4b2037 2022-08-02T18:43:25 [repacker] include size of device tables when determining PairPos2 split points.
Garret Rieger 58fdbd8e 2022-07-30T02:05:15 [repacker] begin adding PairPosFormat2 splitting support.
Behdad Esfahbod a0111e4f 2022-07-30T12:09:45 [graph] Fix warning Fixes https://github.com/harfbuzz/harfbuzz/issues/3766
Garret Rieger 9578c44e 2022-07-29T21:58:24 [repacker] add HB_FALLTRHOUGH.
Garret Rieger 6a5e2cb2 2022-07-29T20:38:53 [repacker] add todo.
Garret Rieger 14f95ee0 2022-07-29T20:09:52 [repacker] re-count shared node sizes in split PairPos segments.
Garret Rieger 3b91fb2a 2022-07-29T20:04:42 [repacker] cleanup todo.
Garret Rieger a0b8893e 2022-07-29T19:58:51 [repacker] add Coverage sanitize.
Garret Rieger 38846f41 2022-07-29T18:30:24 [repacker] more TODO cleanup.
Garret Rieger 46c1fa7d 2022-07-29T18:29:12 [repacker] sanitize PairPos during subtable extension.
Garret Rieger fb3f6ad7 2022-07-29T00:25:19 [repacker] ensure lookup map is updated when lookup memory location changes.
Garret Rieger f1bfb658 2022-07-28T21:01:41 [repacker] cleanup debug prints.
Garret Rieger 65afed04 2022-07-28T20:54:28 [repacker] more bug fixes.
Garret Rieger 1002a3dc 2022-07-28T20:17:36 [repacker] bug fixes.
Garret Rieger a5c2c8c1 2022-07-28T01:27:55 [repack] fix incorrect shrink.
Garret Rieger d589ce68 2022-07-28T01:04:37 [repacker] add extension subtable when needed while adding new PairPos table's.
Garret Rieger 5024d4de 2022-07-28T00:55:36 [repack] more PairPos split implementation.
Garret Rieger 510b8ab1 2022-07-27T23:30:20 [repack] link new coverage in PairPosFormat1::clone_range.
Garret Rieger 29cb8818 2022-07-27T21:02:48 [repacker] new coverage serialization in PairPosFormat1.
Garret Rieger 8d63f60e 2022-07-27T20:36:20 [repack] add graph_t::move_child helper function.
Garret Rieger 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.
Garret Rieger bf0986c7 2022-07-27T19:33:46 [repack] sketch splitting mechanism for PairPosFormat1.
Garret Rieger f6a242b6 2022-07-27T18:58:41 [repacker] begin adding PairPos splitting support.
Garret Rieger 9db3beb7 2022-07-25T19:42:58 [repacker] include LookupList size when calculating size of 16bit space for ext promotion decisions.
Garret Rieger 8d611a7f 2022-07-22T22:49:40 [repacker] remove temporary visibility overrides in gsubgpos.
Garret Rieger 7de136f8 2022-07-22T21:04:34 [repacker] add ext promotion test.
Garret Rieger ad0041f5 2022-07-21T22:50:14 [repacker] Add basic version of the extension promotion selection algorithm.
Garret Rieger 0b6ca424 2022-07-21T21:57:17 [repacker] fix GSTAR sanitize.
Garret Rieger 11709f0f 2022-07-21T21:54:42 [repacker] support extension promotion in 24bit GSUB/GPOS.
Garret Rieger b37374b0 2022-07-21T21:50:23 [repacker] save buffer reference (not copy).
Garret Rieger ae290ff4 2022-07-21T21:45:04 [repacker] add sanitization for GSUB/LookupList/Lookup during extension promotion.
Garret Rieger ce03c353 2022-07-21T19:07:55 [repacker] add make_extension_context_t.
Garret Rieger ebb64b50 2022-07-21T18:36:20 [repacker] size buffer correctly.
Garret Rieger 815bb82b 2022-07-20T18:17:29 [repack] fix incorrect extension object bounds.
Garret Rieger 7e6f6c3e 2022-07-20T03:26:29 [repack] fix new node bounds.
Garret Rieger b1d38a6d 2022-07-19T23:33:16 [repack] WIP implement extension promotion mechanism.
Garret Rieger 3f7a74ff 2022-07-19T21:50:13 [repacker] WIP extension promotion implementation.
Garret Rieger 241ebc93 2022-07-26T00:04:20 [repacker] fix include paths.
Garret Rieger 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
Garret Rieger b4f561db 2022-07-06T18:49:23 [subset] Add some comments to find_space_roots/find_32_bit_roots methods.
Garret Rieger 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.
Garret Rieger 2674962c 2022-06-24T21:00:54 [repacker] Add comment to graph class.
Garret Rieger 7078560e 2022-06-24T19:20:20 [repacker] extract graph serialization code into a seperate file.
Garret Rieger 20b02a67 2022-06-24T18:58:17 [repacker] Begin splitting up the repacker implementation into several files.