Log

Author Commit Date CI Message
Garret Rieger 30e405e4 2022-12-01T22:12:59 [repacker] ensure link obj indices are valid.
Garret Rieger 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.
Garret Rieger edf7a295 2022-09-08T22:59:34 [repacker] Validate link positions before running the repacker.
Garret Rieger 9e99d084 2022-09-08T23:19:02 [repacker] validate link widths during repacker setup.
Garret Rieger 261a605f 2022-09-07T22:43:06 [repacker] verify graph is a dag before using the fuzzer input.
Garret Rieger 88d43752 2022-09-08T21:19:25 [repacker] add test for repacker fuzzer.
Garret Rieger 6627a1ab 2022-09-08T21:11:39 [repacker] Add a initial seed for the fuzzer repacker.
Garret Rieger 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.
Garret Rieger 985b19f6 2022-09-07T22:21:16 [repacker] begin implementing a fuzzer for the repacker api.
Garret Rieger 2658370f 2022-11-30T00:19:10 [subset] make the cmap cache in accelerator const.
Garret Rieger 7551a668 2022-11-30T00:04:16 [subset] Make cff_accelerator const. This gives more confidence that it won't be accidentally modified by the subset operation using it.
Behdad Esfahbod d8d0e066 2022-11-29T21:35:54 [array] Comment
Behdad Esfahbod 2fecf2aa 2022-11-29T21:25:01 [ClassDef] Minor rename
Behdad Esfahbod 8f632ca8 2022-11-29T21:23:35 [ClassDef] Write another loop as range for
Behdad Esfahbod 87b12aee 2022-11-29T21:18:48 [ClassDef] Write a couple loops as range for
Behdad Esfahbod ccd40c84 2022-11-29T21:14:44 [ClassDef] Optimize intersected_class_glyphs
Behdad Esfahbod 44c585a6 2022-11-29T20:51:58 [ClassDef] Fix disabled codeblock
Behdad Esfahbod 9b7617d4 2022-11-29T20:29:58 [ClassDef2] Use a faster algorithm in subset() Speedup across the board; up to 40% for MPlus1 at small sizes.
Behdad Esfahbod ae5e6d56 2022-11-29T15:48:38 [ClassDef2] Micro-optimize
Behdad Esfahbod 7129b794 2022-11-29T15:33:07 [open-type] Add faster range-based loop to array types
Behdad Esfahbod dc823340 2022-11-29T15:26:55 Remove a couple of unneeded .iter() invocations
Behdad Esfahbod 00f2657b 2022-11-29T13:49:15 [subset] Accelerate sanitize-table-cache Big wins all across small subsets BM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/10                              -0.1140         -0.1129             0             0             0             0 BM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/10                               -0.4717         -0.4714             0             0             0             0 BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/10                    -0.8147         -0.8146             0             0             0             0 BM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/10                  -0.3248         -0.3242             0             0             0             0 BM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/10                             -0.1262         -0.1260             0             0             0             0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10                -0.0308         -0.0309             0             0             0             0 BM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/10                       -0.1374         -0.1373             0             0             0             0 BM_subset/subset_codepoints/AdobeVFPrototype.otf/nohinting/10                            -0.4555         -0.4555             0             0             0             0 BM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/10                             -0.4175         -0.4174             0             0             0             0 BM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/10                         -0.4214         -0.4214             0             0             0
Behdad Esfahbod 33165f48 2022-11-29T15:14:15 [bit-page] Remove ELT_BITS_LOG_2 My compiler is smart enough to take care of it.
Satadru Pramanik 58925ed9 2022-11-29T13:14:10 Update freetype subproject to 2.12.1
Christoph Reiter 80dd7515 2022-11-29T19:15:31 CI: work around flaky 64bit MSYS2 builds MSYS2 Python+meson has some random crashes in CI which we haven't been able to reproduce yet. Naturally enabling debugging fixes them.. :)
Christoph Reiter 8f41b6a1 2022-11-29T18:29:46 CI: fix msvc build The Windows image for some reason now contains a zlib and freetype build which meson finds and tries to use. Force meson to use the subprojects always to avoid picking up system libs.
Garret Rieger 7a004a7a 2022-11-29T00:47:55 [subset] Cache per subtable cmap unicode mappings.
Behdad Esfahbod d2a2670e 2022-11-28T19:42:27 [iter] Simplify has() interface implementations
Behdad Esfahbod cba82829 2022-11-28T16:19:54 [subset-cff1] Share subrs object Multiple FDs might share the same subrs...
Behdad Esfahbod c7b998b3 2022-11-28T16:18:21 [cff2] Don't share fd-array link No point.
Behdad Esfahbod 3d9e3c2d 2022-11-28T16:17:09 [subset-cff2] Don't share varstore object
Behdad Esfahbod c503cf00 2022-11-28T15:53:35 [cmap] Store offset, not pointer, in cmap cache
Behdad Esfahbod 3e151139 2022-11-28T14:23:49 [PairPos] Optimize get_effective_value_format Speeds up BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/512 12%.
Behdad Esfahbod 3131aecf 2022-11-28T14:12:55 [array/hash] Fix asan issue ../src/hb-algs.hh:240:43: runtime error: reference binding to misaligned address 0x7ffe91a08b0e for type 'const unsigned int', which requires 4 byte alignment
Behdad Esfahbod 26ad7a60 2022-11-28T14:09:21 [gpos] Minor micro-optimize
Behdad Esfahbod c769d7e1 2022-11-28T14:03:58 [gpos] Whitespace
Behdad Esfahbod 3ea0f37c 2022-11-28T13:58:44 [subset-cff] Move an init to constructor The init was not called anyway.
Behdad Esfahbod 6c92c3e0 2022-11-28T13:54:24 [subset-cff] Remove unnecessary check
Behdad Esfahbod 7fd300dd 2022-11-28T13:51:16 [subset-cff] Use constructor for parsed_cs_op_t
Garret Rieger bd37900e 2022-11-28T20:35:34 [subset] use a reference to cached global/loca subrs. Previously they were being copied in. Copying is no longer necessary now that hint dropping doesn't mutate the arrays.
Behdad Esfahbod ded9de9c 2022-11-28T13:31:40 [cff] bsearch in fdselect Saves 8% in NotoSansCJK / 10000 subset benchmark.
Behdad Esfahbod 0c33aba3 2022-11-28T12:28:13 [subset-cff] Rename drop flag to hinting flag
Behdad Esfahbod 6f5b5319 2022-11-28T11:39:24 [subset-cff] Make no-hinting use accelerator as well
Behdad Esfahbod fad8322b 2022-11-27T15:09:48 [benchmark-subset] Add no-hinting ops
Behdad Esfahbod f51a624e 2022-11-27T14:54:39 [subset-cff] Micro-optimize drop_hints_in_str
Behdad Esfahbod 38603266 2022-11-27T13:23:13 [subset-cff] Write loop more idiomatic
Behdad Esfahbod 3ff502d3 2022-11-27T12:58:04 [subset-cff] Remove unnecessary initialization
Behdad Esfahbod 6af4985b 2022-11-26T18:20:20 [subset-cff] No need for bitflag here anymore
Behdad Esfahbod 69ce606d 2022-11-26T18:18:35 [subset-cff] Immediately drop subr numbers instead of marking for skip Seems to work and saves ~2% time.
Behdad Esfahbod 1cf4f3e0 2022-11-26T18:15:28 [subset-cff] More comment
Behdad Esfahbod f68221ff 2022-11-26T18:12:14 [subset-cff] Add comment
Behdad Esfahbod 048ab8a0 2022-11-26T18:00:43 [subset-cff] Remove unused bits
Behdad Esfahbod 37cbfc0c 2022-11-26T17:57:44 [subset-cff] Remove unneeded member
Behdad Esfahbod 46ab1513 2022-11-26T17:49:21 [subset-cff] Add has_calls to parsed charstrings Optimize closure based on it.
Behdad Esfahbod 6d53074e 2022-11-26T17:23:09 [subset-cff] Drop another unused parameter
Behdad Esfahbod 42615561 2022-11-26T17:10:58 Optimize a couple array references
Behdad Esfahbod 04d23b7c 2022-11-26T17:08:00 [subset-cff] Micro-optimize collect_subr_refs_in_str
Behdad Esfahbod 9d18180c 2022-11-26T15:38:21 [array] Use hb_hash instead of handrolling
Behdad Esfahbod 1e6f77c2 2022-11-26T15:31:56 [benchmark-subset] Adjust num glyphs more
Behdad Esfahbod 0382defa 2022-11-26T15:27:07 [benchmark-subset] Adjust number of glyphs of fonts
Behdad Esfahbod 4cb441df 2022-11-26T15:23:07 [benchmark-subset] Add AdobeVFPrototype
Behdad Esfahbod e302b9d5 2022-11-26T15:18:16 Fix build
Behdad Esfahbod 70d97d07 2022-11-26T15:16:11 [subset-cff] Remove unused argument
Behdad Esfahbod 4167e93a 2022-11-26T15:14:52 [subset-cff2] Micro-optimize blend operator
Behdad Esfahbod f159bf07 2022-11-26T15:11:32 [cff2] Micro-optimize blend operator
Behdad Esfahbod a331e913 2022-11-26T14:59:37 [bit-page] Hand-code equality Faster than memcmp() because of alignment.
Behdad Esfahbod 9df06a26 2022-11-26T14:56:45 [bit-set] Fix is_subset() short-circut criteria Ouch!
Behdad Esfahbod 915c1a00 2022-11-26T14:48:57 [vector] Add remove_unordered Saves 5% in NotoNastaliq/1000 subset benchmark.
Behdad Esfahbod 4b8d8fbe 2022-11-26T14:31:15 [ot-map] Micro-optimize for size
Behdad Esfahbod 93f3a9db 2022-11-26T14:19:00 [ot-map] Micro-optimize more Another 500 bytes.
Behdad Esfahbod f39f0498 2022-11-26T14:16:15 [ot-map] Micro-optimize Weird that shrinks size by 500 bytes.
Behdad Esfahbod 60bb32c4 2022-11-26T14:12:57 [ot-map] Minor refactor
Behdad Esfahbod e3cc6183 2022-11-26T13:58:04 [PairPos] Adjust kerning buffer messages
Behdad Esfahbod a81dd105 2022-11-26T13:43:15 [layout] Adjust printing feature tags For required-feature, print spaces, not nul bytes.
Behdad Esfahbod 56e3868b 2022-11-26T13:14:23 [layout/buffer-message] Print feature name in lookup buffer messages
Garret Rieger a5d35fd8 2022-11-25T23:17:05 [subset] use charstrings directly from accelerator cache if mutability isn't needed.
Behdad Esfahbod 026b64ef 2022-11-25T14:57:40 [subset-cff] Avoid set mallocation in hb_plan_subset_cff_fdselect
Behdad Esfahbod 74acf52f 2022-11-25T14:43:44 [subset-cff] Micro-optimize copy_str more
Behdad Esfahbod d2f3cde7 2022-11-25T14:38:30 [subset-cff] Micro-optimize copy_str
Behdad Esfahbod e333223f 2022-11-25T14:23:57 [array] Optimize serializing copy()
Behdad Esfahbod 22990fca 2022-11-25T14:12:58 Merge pull request #3894 from googlefonts/cff_accel [subset] Cache parsed char strings in CFF accelerator
Garret Rieger 8d5c899b 2022-11-25T20:33:39 [subset] In cff accelerator hold reference to CFF table instead of the whole font.
Behdad Esfahbod 7b197446 2022-11-25T13:28:53 [vector] Adjust for HB_OPTIMIZE_SIZE
Garret Rieger 75a99f28 2022-11-25T18:38:13 [subset] destruct cff accelerator if present.
Behdad Esfahbod 1d474194 2022-11-25T13:21:35 [subset-cff] Micro-optimize encode_str
Behdad Esfahbod 3c4a610b 2022-11-25T13:16:30 [subset-cff] Micro-optimize copy_str some more
Behdad Esfahbod 535aadb3 2022-11-25T13:07:42 [subset-cff] Micro-optimize collect_subr_refs_in_str more
Behdad Esfahbod 00a9df3a 2022-11-25T13:05:05 [subset-cff] Micro-optimize collect_subr_refs_in_str
Behdad Esfahbod d2a2f5bf 2022-11-25T12:44:02 [vector] Handroll copy
Behdad Esfahbod 1fed366d 2022-11-25T12:37:24 [serialize] Shut compiler warning off
Behdad Esfahbod f2297e69 2022-11-25T11:33:00 [buffer] Documentation Fixes https://github.com/harfbuzz/harfbuzz/issues/3889
Garret Rieger 71c23c1c 2022-11-25T18:04:44 [subset] don't copy the entire global/loca subr lists from the accelerator. Instead run a closure on the retained charstrings and copy only the referenced subrs. This significantly speeds up cases with small character sets.
Garret Rieger 4ff09274 2022-11-24T22:47:29 [subset] In CFF accelerator keep a reference to original face. The charstring objects reference memory from the original face so we need to maintain a reference to prevent it from being destroyed.
Behdad Esfahbod 6aaa1662 2022-11-24T14:58:42 [Coverage] Comment
Behdad Esfahbod 06e2147a 2022-11-24T14:56:04 More call set->next() directly
Behdad Esfahbod 196c9db0 2022-11-24T14:51:52 Call ->next() directly
Behdad Esfahbod 03d64b74 2022-11-24T14:33:18 [bit-set] Remove TODO that would never happen
Behdad Esfahbod 690df8a3 2022-11-24T14:32:51 [bit-set] Micro-optimize prev()
Behdad Esfahbod fe5d9176 2022-11-24T14:30:18 [bit-set] Micro-optimize size It's silly that this saves size at all. :(
Behdad Esfahbod cf9b9929 2022-11-24T14:26:28 [bit-set] Micro-optimize process()