src


Log

Author Commit Date CI Message
Behdad Esfahbod dd291f48 2025-09-07T23:46:27 Short-circuit ASCII more (#5528)
Behdad Esfahbod d94851e5 2025-09-03T11:52:51 [rust] Use inherited codegen-units=1 in debugoptimized build It makes significant (30% in Nastaliq benchmark) difference.
Qunxin Liu cb4548d3 2025-09-02T14:58:00 [subset] always generate AdvMap (#5524)
Qunxin Liu 77d07304 2025-09-02T14:40:51 [subset] fix HVAR encoding width (#5523)
Behdad Esfahbod 12ec6682 2025-09-02T14:21:57 [buffer] Micro-optimize set_masks Somehow this specialization loop was in HarfRust / RustyBuzz.
Behdad Esfahbod 598da8c8 2025-09-02T14:21:08 [buffer] Add some buffer op accounting to a few methods (#5522) Should fix a fuzzer-found issue, now that we have increased most buffer limits.
Behdad Esfahbod a89c36e0 2025-09-02T13:05:11 [GPOS/kerx] Support attaching marks to bases after them (#5520) See comments. Fuzzer found. I'm surprised this was not discovered before though. I hope I have not missed anything. Fixes https://oss-fuzz.com/testcase-detail/6399443634290688
Khaled Hosny 22f77d48 2025-08-30T11:39:01 11.4.5
Behdad Esfahbod 6d1c70bf 2025-08-29T17:09:00 Remove unused code
Behdad Esfahbod 01072c5c 2025-08-29T13:19:59 [harfrust] Require 0.2.0
Behdad Esfahbod c61a4f26 2025-08-29T02:11:52 [GPOS] Micro-optimize offset propagation
Behdad Esfahbod cb8b47eb 2025-08-29T00:08:28 [kern] Use reset_fast
Behdad Esfahbod 772279df 2025-08-28T15:58:39 [utf] inline some
Behdad Esfahbod c6e3f5a8 2025-08-27T16:41:25 [aat] Reverse buffer only when necessary (#5516)
Behdad Esfahbod 141df8b9 2025-08-27T16:09:35 [buffer] Adjust inlining
Behdad Esfahbod ff8d8e44 2025-08-27T15:36:48 Fixup
Behdad Esfahbod 1091b8a9 2025-08-27T15:35:26 [shape-fallback] Adjust inlining
Behdad Esfahbod bc6eba94 2025-08-27T13:29:15 Fix kerx attachment shaping issues (#5515) * [ot-shape] Don't zero offsets of default-ignorables Part of fixing https://github.com/harfbuzz/harfbuzz/issues/5514 * [ot-shape] Propagate chain offsets in opposite direction if RTL Part of fixing https://github.com/harfbuzz/harfbuzz/issues/5514
Behdad Esfahbod 7d936359 2025-08-26T01:46:34 [aat] Clear cached buffer glyph set (#5508) Ouch.
Behdad Esfahbod 12b0f086 2025-08-26T01:29:50 [morx] Move a few initializations later (#5507)
Behdad Esfahbod 8e2e18fe 2025-08-25T23:55:30 [aat] Rename a few members (#5506)
Behdad Esfahbod 653b7722 2025-08-25T20:15:43 [kern] Simplify Format3 collect_glyphs() (#5505) No idea why I wrote it that way initially.
Behdad Esfahbod 1e5b65b7 2025-08-25T19:55:13 [aat] Remove unused code (#5504)
Behdad Esfahbod 8f4778d2 2025-08-25T19:49:48 [aat] Implement collect_glyphs_filtered for LookupFormat10 (#5503) Oops.
Khaled Hosny 3420ef02 2025-08-26T00:57:35 11.4.4
Khaled Hosny b7c55efe 2025-08-26T00:28:12 [subset] Fix shaping behaviour when pruning empty mark sets See https://github.com/harfbuzz/harfbuzz/issues/5499
Behdad Esfahbod 6b62d367 2025-08-25T14:02:59 [ligature-cache] Handle case of ligature with no components (#5500) In the cache with "seconds" set-digest.
Behdad Esfahbod 724ae78d 2025-08-25T13:14:43 Revert "[check-glyph-properties] Cache current lookup-prop's matching result." (#5497) This reverts commit 5b6836e10802266b4c216208e517d617c0a75693. This broke some shaping, namely, "j̣̈́J̣J̈́" with Google Sans, and is quite tricky to debug. Since this slowed down everything other than Duployan, and we also decided NOT to port it to HarfRust, just revert and keep the simpler and more reasonable code logic.
Steve Lhomme 567dde62 2025-08-25T17:50:54 [coretext] fix unsigned integer comparison (#5496) Comparing a CFIndex with an unsigned int results in a compilation error on iOS armv7 targets: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.4.sdk -Isrc/libharfbuzz.a.p -Isrc -I../src -I. -I.. -I/Volumes/External/videolanci/builds/vCi6yJP3/0/robUx4/vlc/contrib/armv7-iphoneos/include/freetype2 -I/Volumes/External/videolanci/builds/vCi6yJP3/0/robUx4/vlc/contrib/armv7-iphoneos/include -fdiagnostics-color=always -Wall -Winvalid-pch -std=c++11 -fno-exceptions -O2 -g -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -mios-version-min=9.0 -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.4.sdk -Werror=partial-availability -fno-stack-check -g -O2 -MD -MQ src/libharfbuzz.a.p/hb-coretext-font.cc.o -MF src/libharfbuzz.a.p/hb-coretext-font.cc.o.d -o src/libharfbuzz.a.p/hb-coretext-font.cc.o -c ../src/hb-coretext-font.cc ../src/hb-coretext-font.cc:413:11: error: comparison of integers of different signs: 'CFIndex' (aka 'long') and 'unsigned int' [-Werror,-Wsign-compare] if (len > size - 1) ~~~ ^ ~~~~~~~~ 1 error generated.
Behdad Esfahbod 029eb215 2025-08-23T18:43:50 [harfrust] Encode pre-context in the correct order (#5495) https://github.com/harfbuzz/harfrust/issues/205
Khaled Hosny 9ac9af25 2025-08-23T11:48:18 11.4.3
Behdad Esfahbod 04953dca 2025-08-21T23:00:37 [vector] Enable set_storage only on trivial types (#5493)
Behdad Esfahbod 7ba05752 2025-08-21T19:38:10 [harfrust] Fix compile with clang
Behdad Esfahbod 5fddacc1 2025-08-21T12:54:49 [harfrust] Set buffer pre/post-context (#5492) * [harfrust] Set buffer pre/post-context Fixes the failing item-context tests. Yay. * Bump MSRV
eri e80b6d11 2025-08-21T19:24:35 [ot-math] Fix constant scaling when checking if the font is Cambria Math (#5490) Co-authored-by: Khaled Hosny <khaled@aliftype.com>
jfkthame c1a75d36 2025-08-21T17:38:04 Avoid UB if shrink_vector(0) is called on an already-empty vector (#5491) Fixes #5489
Behdad Esfahbod 6c42e2d7 2025-08-21T00:04:56 [buffer] Consume ops in shift_forward (#5488) Makes failing infinite-recursion fonts and stuff much faster.
Khaled Hosny 6b754c33 2025-08-21T08:40:14 11.4.2
Behdad Esfahbod b51de936 2025-08-20T23:15:46 Remove duplicate buffer->leave call (#5487) * Remove duplicate buffer->leave call hb-shape.cc does it for us. * Fail shaping if max len reached * Increase buffer limits https://github.com/harfbuzz/harfrust/issues/107 * Remove shaping_failed; fail in buffer.successful
Behdad Esfahbod b790eb9e 2025-08-20T19:11:54 [gen-use-table] Generate --rust output Used for HarfRust.
Behdad Esfahbod 14227e16 2025-08-20T19:07:51 Update use (#5486) * [use-table] Regenerate with latest packtab * [gen-use-table] Remove unused code Copied from gen-indic-table.
Behdad Esfahbod 00492ec7 2025-08-20T13:48:11 [harfrust] Pin to 0.1.2 for relase
Behdad Esfahbod c32ea553 2025-08-20T13:15:58 [avar] Fix version2 handling (#5485)
Behdad Esfahbod 724249ff 2025-08-20T00:54:05 Simplify a return after recent changes (#5484)
Behdad Esfahbod 8bdedb3b 2025-08-20T00:27:41 Limit external caches (#5483) * Revert "[external_cache] Remove a conditional (#5471)" This reverts commit 9794ad9e00ff66741c36ec9511e3e968663b74a7. * Limit external_cache to 8 subtables per lookup
Behdad Esfahbod 22545743 2025-08-20T00:06:00 Match positions no malloc (#5481) * Reduce allocation of match_positions by caching one in ctx * Use a stack-array for small match-positions This surgically enables stack-backed storage in vector. * Handle match-positions alloc failure And make allocations unchecked. * Clean up CFF hack to use static storage in vector * Fixup for match_positions allocations * Fix vector handling of foreign arrays memory management
Behdad Esfahbod 6a449756 2025-08-18T18:52:02 [aat] Comment
Behdad Esfahbod 04f1a435 2025-08-18T16:57:46 Add a typedef
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 7b56d3a1 2025-07-26T05:35:57 [ot-layout] s/hb_ot_lookup_cache_t/hb_ot_layout_mapping_cache_t/g
Behdad Esfahbod 09978fc5 2025-07-26T04:20:59 [ot] Rename hb_ot_lookup_cache_op_t, and cache to subtable_cache