src


Log

Author Commit Date CI Message
Behdad Esfahbod fe6c9a0f 2025-09-11T23:23:41 [instancer/varstore] Fix a logic bug combined_chars was moved already. Also, see comment.
Behdad Esfahbod 9d971169 2025-09-11T23:10:50 [instancer/varstore] Add a chars_t type
Behdad Esfahbod 1a6c6d78 2025-09-11T21:59:41 [instancer] Micro-optimize a couple of hot comparisons
Behdad Esfahbod c938e8ce 2025-09-11T21:57:14 [instancer] Micro-optimize by using bit-set directly
Behdad Esfahbod 266e1c24 2025-09-11T20:12:39 [instancer] Short-circuit some work in gain_from_merging
Behdad Esfahbod a34f8b31 2025-09-11T19:10:05 [instancer] Use bitset instead of vector for VarStore optimizer columns ~30% faster on GoogleSansFlex.
Behdad Esfahbod 2e86070e 2025-09-11T18:15:19 [instancer] Don't clear a couple of resize allocations Not needed.
Behdad Esfahbod 01fd17d6 2025-09-11T17:05:03 [instancer] Reduce mallocs in create_from_tuple_var_data
Behdad Esfahbod 23e40cd7 2025-09-11T16:53:44 [instancer] Reduce mallocs in gain_from_merging
Behdad Esfahbod 3225bd73 2025-09-11T16:44:24 [instancer] Minor default construction simplify
Behdad Esfahbod 3df6e510 2025-09-11T16:33:10 [instancer] Reduce mallocs in merge_tuple_variations
Behdad Esfahbod 6d82b40a 2025-09-11T16:09:13 [instancer] Remove unnecessary vector fini
Behdad Esfahbod 87c36992 2025-09-11T15:42:59 [instancer] Reduce mallocs in calc_inferred_deltas
Behdad Esfahbod 740cbf1c 2025-09-11T15:30:30 [vector] Add malloc debug facility
Behdad Esfahbod 67bddf15 2025-09-11T15:16:30 [instancer] Reduce mallocs in change_tuple_var_axis_limit
Behdad Esfahbod 17aa37ab 2025-09-11T15:13:51 [instancer] Reduce mallocs in rebase-tent
David Corbett 0fbbf749 2025-09-10T21:11:44 [ot-tags] Update IANA subtags to 2025-08-25 (#5537)
David Corbett 13c8ffa0 2025-09-10T11:35:54 [Unicode 17] Send the new scripts to USE
David Corbett f59d532b 2025-09-10T11:34:07 [Unicode 17] Update the USE table
David Corbett 5b6409f0 2025-09-10T11:22:02 [Unicode 17] Update the vowel constraint table
David Corbett 7c611a2b 2025-09-10T11:21:36 [Unicode 17] Update the Indic table
David Corbett e189b34e 2025-09-10T11:19:14 [Unicode 17] Update the emoji table & cluster test
David Corbett e0e0a757 2025-09-10T11:18:07 [Unicode 17] Update the Arabic joining script list
David Corbett 5b72f304 2025-09-10T11:17:25 [Unicode 17] Update the Arabic table
David Corbett 147db69b 2025-09-10T11:15:30 [Unicode 17] Update the UCD table
David Corbett d08a72dd 2025-09-10T11:12:37 [Unicode 17] Add new `hb_script_t` values
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