src/graph/classdef-graph.hh


Log

Author Commit Date CI Message
Garret Rieger cad41886 2025-07-09T17:09:05 [repacker] fix bug where nodes with incoming virtual links could get orphaned. When attempting to fix overflows nodes that have incoming edges from more than one parent can be duplicated. However, if all of these incoming links are virtual except for one duplicating it will effectively orphan it (one of the copies will be pointed to only by virtual links). Since parent book keeping is expensive we don't want to separately track virtual/real parents so instead just don't duplicate nodes that have at least one incoming virtual link.
Garret Rieger 79eaa217 2024-03-14T21:22:22 [repacker] remove unused include.
Garret Rieger 8e1beefe 2024-03-08T22:05:20 [repacker] small fixes.
Garret Rieger 0ac9e7da 2024-03-08T21:53:10 [repacker] in classdef estimator tests compare results to actual class def serialization. Fix the estimator to actually match real serialization sizes.
Garret Rieger 8129b21d 2024-03-08T20:15:43 Update classdef size estimator to pick the min coverage format. Previously this just assumed a worst case format 1.
Garret Rieger 252a926f 2024-03-08T19:46:48 [repacker] Rework how ClassDef sizes are estimated during splitting. The old approach considered only one class at a time, which in some cases can generate the wrong answer. This change updates the estimation to consider how all classes in the current split would end up encoded in a single ClassDef table. Additionally compute whether glyphs are consecutive only for the current split (instead of the fully mapping).
Behdad Esfahbod 3a9262cc 2023-11-04T12:52:46 [sanitize] More hb_barrier() annotations
Behdad Esfahbod 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.
Garret Rieger ff326fbe 2023-05-29T21:31:01 [repacker] check the result of add_buffer() in other places where it's called.
Behdad Esfahbod 02b76393 2022-10-29T11:15:03 [config] Re-enable BORING_EXPANSION Only the non-experimental parts (currently avar2) are enabled by default.
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 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 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.