src


Log

Author Commit Date CI Message
Behdad Esfahbod c6153c73 2025-08-16T16:52:02 [buffer] Micro-optimize next_glyph() (#5472)
Behdad Esfahbod 9794ad9e 2025-08-16T15:51:05 [external_cache] Remove a conditional (#5471)
Behdad Esfahbod 96f3cae5 2025-08-16T15:02:37 Revert "[set-digest] Branch-free tests (#5469)" (#5470) This reverts commit a4d4c41023dd738d35f2e917d8deea2b473a38aa. That commit had slowed down clang by 3% while sped up gcc by 3%. Revert, to keep the code *intention* clear. Rely on compiler to avoid branches if it sees fit.
Behdad Esfahbod a4d4c410 2025-08-16T13:55:46 [set-digest] Branch-free tests (#5469)
Behdad Esfahbod 368598b5 2025-08-16T00:38:42 Increase match_positions stack allocation from 4 to 8 (#5468) Slight speedup on NotoNastaliq.
Behdad Esfahbod 0e6e18e7 2025-08-15T14:27:33 Rename a method
Behdad Esfahbod 0a257b01 2025-08-15T00:54:52 [gen-ucd-table] Rust clippy
Behdad Esfahbod 03d516f8 2025-08-15T00:52:44 [ucd] Change compression level from 5 to 3 (#5466) 3kb bigger binary size. 1% faster in Roboto.
Behdad Esfahbod dae2c8bb 2025-08-14T22:26:40 [ligature] Add a set-digest on the second component (#5464)
Behdad Esfahbod 8268473a 2025-08-14T21:57:19 Add external_cache_create separate from cache_func (#5463) * Add external_cache_create separate from cache_func * Simplify cache_func_t signature * Rename a cache type * Rename another cache type
Behdad Esfahbod cf614fc8 2025-08-14T16:23:45 [LigatureSet] Use slow path only if <= 1 ligatures (#5462)
Behdad Esfahbod bbc2e0d0 2025-08-14T16:12:59 [harfrust] Scale using int64 instead of float (#5461) Like hb-font.hh does.
Behdad Esfahbod 354c6a17 2025-08-14T16:01:44 [harfrust] Remove one function call (#5460) lol. That's how desperate we are now.
Behdad Esfahbod 75044854 2025-08-14T11:24:19 [harfrust] Update to latest API
Behdad Esfahbod 53cd214e 2025-08-14T10:24:21 [harfrust] Use buffer.ensure() (#5459)
Behdad Esfahbod a9a78e1b 2025-08-14T02:04:06 [main-loop] Hypothetically remove a branch (#5458) Don't rely on the compiler.
Behdad Esfahbod 7d1ef008 2025-08-14T01:03:18 Remove an unneeded parameter (#5457)
Behdad Esfahbod f9e6c84d 2025-08-13T18:18:57 [gen-ucd-table] Add another clippy warning
Behdad Esfahbod 8ebdb9f7 2025-08-13T17:39:30 [harfrust] Cache Shaper object (#5454)
Behdad Esfahbod 6b285e6e 2025-08-13T11:59:30 11.4.1
Behdad Esfahbod 71a7c58c 2025-08-13T11:57:36 Fix build on some compilers
Behdad Esfahbod 8c859f25 2025-08-13T11:47:38 11.4.0
Behdad Esfahbod fbc21a95 2025-08-12T10:59:11 [gsubgpos] Remove copy/pasta code
Behdad Esfahbod 4aa7dcba 2025-08-12T03:18:38 [Coverage cache] Micro-optimize
Behdad Esfahbod a4dbb7d4 2025-08-12T02:34:49 [Coverage] Cache NOT_COVERED effectively (#5453) Before, our cache.set was always failing for NOT_COVERED, making the cache ineffective for uncovered glyphs. Fix that. Some nice speedups in Latin fonts.
Behdad Esfahbod 1e8a554e 2025-08-11T19:27:32 Hr buffer cache (#5452) * [harfrust] Rename a variable * [harfrust] Cache HR buffer on HB buffer
Behdad Esfahbod 1a2337d5 2025-08-11T12:52:47 [rust] Require HarfRust 0.1.*
Behdad Esfahbod 6ec1b279 2025-08-11T01:14:19 [lookup] Give each subtable an external-cache opportunity (#5449) * [lookup] Give each subtable an external-cache opportunity * [subtable-cache] Fixups
Behdad Esfahbod 0f6323e1 2025-08-10T15:15:08 [layout] Rename a variable
Behdad Esfahbod ef5c3d59 2025-08-10T01:27:41 [rust] Oops
Behdad Esfahbod 940604b2 2025-08-10T01:20:41 [gsubgpos] Micro improvement of (Chain)ContextFormat2 classdef cache
Behdad Esfahbod fe554a1b 2025-08-08T05:05:19 [contextuals] Fix cache_cost Was just wrong.
Behdad Esfahbod 6195c434 2025-08-08T04:00:27 [contextuals] Tweak cache cost
Behdad Esfahbod 673934f2 2025-08-07T22:58:14 Revert "[VARC] Graduate out of experimental" This reverts commit 7a708a935c9642a26ffa903759c41b5bd5289898.
Behdad Esfahbod 06e9277f 2025-08-07T22:38:58 Rename _S to HB_STR Fixes https://github.com/harfbuzz/harfbuzz/issues/5446
Behdad Esfahbod 5f46ff80 2025-08-07T22:04:20 [shape] Rename a buffer var For clarity.
Khaled Hosny 880eb464 2025-08-04T00:57:48 [graphite2] Use signed int for current advance Graphite can return negative advances, but we were storing current x and y advances as unsigned ints. The `curradvx` and `curradvy` variables are used only when calculating the respective offset, but the advance itself it always taken from Graphite directly, so using signed here makes no difference to how advances are set, only the offsets. Fixes https://github.com/harfbuzz/harfbuzz/issues/5439
Khaled Hosny 5a443ade 2025-07-29T22:30:33 [ci] Add a script to extract release notes from NEWS file Add a script to extract the release notes from the NEWS files and use them when creating GitHub releases, so that we don’t need to copy them manually. Add also a test to make sure the NEWS file always have release notes for the current release.
Qunxin Liu cd49b14b 2025-07-29T14:32:26 [subset] add more aggressive pruning for MarkLigPos and MarkMarkPos (#5434) Remove lig/mark glyphs without defined anchor points after subsetting
Garret Rieger 7d7f8681 2025-07-29T14:31:53 Don't cast negative advance to unsigned. (#5436)
Behdad Esfahbod 7af1df67 2025-07-28T10:24:45 Revert "Merge branch 'main' into HVF" This reverts commit 3a64fce9b73bc601e257d13d1ea8ac7f32ce60b6, reversing changes made to f63d960c4eda79514c060ddce796df9e607b5bae.
Behdad Esfahbod 57565de1 2025-07-28T10:20:28 Revert "[hvgl] Fix cast-align issue" This reverts commit b03089bf56794b3e96898231c1ca6fbcb4f6454b.
Behdad Esfahbod 57f0eb80 2025-07-28T06:10:45 Add pragma GCC diagnostic ignored "-Wold-style-cast" (#5431) From https://github.com/SFML/SFML/pull/3543#issuecomment-3126532776
Behdad Esfahbod 290063c6 2025-07-28T03:18:44 [face] Fix a potential crasher if not enough font data In hb_face_count(). Fixes https://github.com/memononen/Skribidi/pull/67
Behdad Esfahbod c7ec53d9 2025-07-27T19:55:21 Try to fix build on gcc-8 (#5430) * [machinery] Use std::forward in StructAfter Might not fix https://github.com/harfbuzz/harfbuzz/issues/5429 but I was inspecting there and looks relevant. * [machinery] Write StructAfter as an auto-return Maybe fixes https://github.com/harfbuzz/harfbuzz/issues/5429 * [machinery] Another try at fixing gcc-8 Trying to fix https://github.com/harfbuzz/harfbuzz/issues/5429
Behdad Esfahbod 4df970fc 2025-07-26T14:07:11 Merge tag '11.3.3' 11.3.3
Behdad Esfahbod c3fcbffa 2025-07-26T14:00:32 11.3.3
Behdad Esfahbod 5565d78d 2025-07-26T12:51:18 [ot-font] Fix v-advance if font has no vmtx table Fixes https://github.com/harfbuzz/harfbuzz/issues/5425
Behdad Esfahbod 3918f085 2025-07-26T12:51:18 [ot-font] Fix v-advance if font has no vmtx table Fixes https://github.com/harfbuzz/harfbuzz/issues/5425
Behdad Esfahbod 11daf566 2025-07-26T06:31:48 [GDEF] Rename a var
Behdad Esfahbod 09978fc5 2025-07-26T04:20:59 [ot] Rename hb_ot_lookup_cache_op_t, and cache to subtable_cache
Behdad Esfahbod 7b56d3a1 2025-07-26T05:35:57 [ot-layout] s/hb_ot_lookup_cache_t/hb_ot_layout_mapping_cache_t/g
Behdad Esfahbod a220479f 2025-07-26T06:10:31 Remove std::forward inside loops (#5424) * [iter,cff] Remove std::forward from inside loops Was moving multiple times, if args were movable. * [CPAL] Handle an error * [serialize] Remove another std::forward in a loop * [bit-page] Fix a static-analysis out-of-range warning Code was safe. Just rewrite. * [ot-layout] Remove another std::forward from inside a loop
Behdad Esfahbod 87aaaf47 2025-07-26T03:51:30 [ragel] Update artifacts (#5421)
Behdad Esfahbod 66231e85 2025-07-25T06:54:46 Merge pull request #5420 from harfbuzz/duployan-speedup Duployan speedup
Behdad Esfahbod f8e0bf1c 2025-07-25T06:08:58 [match_properties_mark] inline and hot
Behdad Esfahbod a592330e 2025-07-25T05:58:00 Sprinkle consts back
Behdad Esfahbod 3c18f60d 2025-07-25T05:41:07 [check-glyph-property] Move the cache check to MarkFilteringSets only
Behdad Esfahbod 5b6836e1 2025-07-25T04:42:49 [check-glyph-properties] Cache current lookup-prop's matching result. Slows down everything other than speeding up Duployan.
Behdad Esfahbod 3ac630a5 2025-07-25T04:21:55 Merge pull request #5404 from harfbuzz/no-cargo-lock [rust] Remove Cargo.lock
Behdad Esfahbod 786f8381 2025-07-25T04:00:37 [GDEF] Use bit-set instead of set-digest for mark glyph classes Most fonts don't even have these. Some, like NotoSansDuployan have huge ones. This speeds it up by 25%.
Behdad Esfahbod b87d866b 2025-07-25T03:21:46 Fix HB_TINY `ninja -Cbuild libs` with experimental_api=true
Behdad Esfahbod 75f91987 2025-07-25T02:39:47 [src/test-*] Use hb_always_assert() which isn't compiled out under NDEBUG Part of https://github.com/harfbuzz/harfbuzz/issues/5418
Behdad Esfahbod 2dc0b070 2025-07-25T02:20:50 [test] Mark a couple functions as unused Under NDEBUG.
Behdad Esfahbod aadc7ccf 2025-07-25T02:18:15 [subset-table] Add a HB_UNUSED
Behdad Esfahbod 8204e2dc 2025-07-25T01:45:35 [ot-shape] Micro-optimize a loop By gemini-cli.
Behdad Esfahbod 415ea36a 2025-07-24T23:21:36 [subset] Break up hb-subset.cc
Behdad Esfahbod 9aa9fc51 2025-07-24T22:47:08 [subset] Move code around
Behdad Esfahbod 367300ec 2025-07-24T22:33:19 [subset] Move code around
Behdad Esfahbod bdbcd8f6 2025-07-24T22:01:26 [subset] Comment
Behdad Esfahbod 675f8ee6 2025-07-24T21:46:11 [scalar-cache] Fix sanitizer whining Fixes https://github.com/harfbuzz/harfbuzz/issues/5410
Behdad Esfahbod 305ac175 2025-07-24T15:54:59 Merge pull request #5412 from qxliu76/mark_base_pos [subset] MarkBasePos: remove base glyphs with empty base record
Qunxin Liu 879c4ac7 2025-07-24T14:13:16 [subset] MarkBasePos: remove base glyphs with empty base record BaseRecord could become empty if all anchor offsets for retained mark classes are null
Behdad Esfahbod b03089bf 2025-07-24T11:33:34 [hvgl] Fix cast-align issue Fixes https://github.com/harfbuzz/harfbuzz/issues/5408
Jan Kelemen 64ebfa04 2025-07-24T17:20:45 Fix unary minus operator applied to unsigned type, result still unsigned
Behdad Esfahbod b7d5dc85 2025-07-24T00:24:48 [kbts] Grow buffer exponentially See comment.
Behdad Esfahbod be585dfc 2025-07-24T00:08:57 [kbts] Don't clear contents That was resetting props to invalid. We shouldn't touch props.
Behdad Esfahbod 926ad165 2025-07-23T23:53:50 [kbts] Handle a malloc fail
Behdad Esfahbod a98d08a8 2025-07-23T23:48:47 [kbts] Fix a compiler warning
Behdad Esfahbod 70e587de 2025-07-23T23:36:13 [kbts] Clean up font initialization
Behdad Esfahbod 41b89ee8 2025-07-23T20:19:57 [kbts] Streamline buffer management
Behdad Esfahbod b3258808 2025-07-23T20:00:41 [rust] Remove Cargo.lock As per recommendations. I hope this is what they meant.
Behdad Esfahbod f5acbb5c 2025-07-23T17:48:13 [VARC] Fix HB_NO_DRAW build
Behdad Esfahbod 64b50ec4 2025-07-23T17:40:12 [config] Kill HB_NO_BORING_EXPANSION As features graduate from it and become part of the standard / default, one tag doesn't do us any good. Features should be disabled individually, like using HB_NO_VAR_COMPOSITES.
Behdad Esfahbod 7a708a93 2025-07-23T17:36:54 [VARC] Graduate out of experimental
Behdad Esfahbod fc671f0e 2025-07-23T17:12:31 [kb] Clear buffer out flags and stuff
Garret Rieger 8c79e4f8 2025-07-23T22:26:17 [repacker] Add batch version of move_child(). Move child is O(n) where n = number of links on the parent object. The batch version is also O(n). Use this in ligature splitting clone range to avoid O(n^2) behaviour.
Garret Rieger 38181c3f 2025-07-23T21:45:06 [repacker] cache liga index to object id maps between clone_range calls.
Garret Rieger 1caab75b 2025-07-23T21:14:20 [repacker] fix O(n^2) behaviour in LigatureSubstFormat1::clone_range.
Garret Rieger ee4a7a32 2025-07-23T21:05:23 [repacker] fix O(n^2) in LigatureSubstFormat1::shrink.
Garret Rieger 870b37ba 2025-07-23T20:57:09 [repacker] optimize ligature splitting implementation. Eliminate O(n^2) behaviour in compute_split_points().
Behdad Esfahbod a2b85859 2025-07-23T15:32:33 [kbts] Fix Indic stuff We were trying with 'dev3' tag and failing, as kbts only undersetands 'dev2' tags. Try all and stop at first accepted.
Garret Rieger dd347eb4 2025-07-23T19:22:19 [VARC] fix potential unitialized value use in get_extents_without_var_scaled. Callers of get_extents_without_var_scaled assume it will set extents if it has returned true.
Qunxin Liu 4b00cec0 2025-07-15T11:25:49 [subset] bug fix for COLRv1 layer index closure
Garret Rieger 04d60de6 2025-07-23T18:55:56 [CFF2] Fix fuzzer failure in CFF2. Fixes https://oss-fuzz.com/testcase-detail/5291661985120256
Khaled Hosny 1e7b99c5 2025-07-23T15:30:02 [kbts] Support features Probably does too many reallocations, but it works.
Khaled Hosny 7d219f0b 2025-07-23T14:22:32 [kbts] Add shaper
Khaled Hosny bb3a8394 2025-07-23T11:07:12 [kbts] Add dummy shaper Just the infrastructure to build the shaper.
Behdad Esfahbod 3a64fce9 2025-07-23T00:29:55 Merge branch 'main' into HVF
Behdad Esfahbod f63d960c 2025-07-22T16:59:48 Fix a MSVC warning re __has_builtin Fixes https://github.com/harfbuzz/harfbuzz/issues/5395