|
4a26e289
|
2025-09-30T15:31:04
|
|
Add `hb_ot_layout_lookup_collect_glyph_alternates()` (#5367)
* [map] Massage operator << overloads
* [ot-layout] Add +hb_ot_layout_lookup_collect_glyph_alternates
To collect all glyph mapping from SingleSubst or AlternateSubst
lookups in one call. Needed by FreeType autohinter for performance.
New API:
+hb_ot_layout_lookup_collect_glyph_alternates()
* [layout] Change hb_ot_layout_lookup_collect_glyph_alternates() API
https://github.com/harfbuzz/harfbuzz/pull/5367#discussion_r2149019638
|
|
61b6a262
|
2025-09-30T13:18:46
|
|
[pragmas] Disable -Wuninitialized and -Wmaybe-uninitialized on gcc
Fixes https://github.com/harfbuzz/harfbuzz/issues/5589
CC https://github.com/harfbuzz/harfbuzz/pull/5367
|
|
af286b8f
|
2025-09-30T12:59:34
|
|
[Coverage] Simplify initialization
|
|
16430313
|
2025-09-29T23:00:28
|
|
[pragmas] Demote -Wuninitialized from error to warning (#5593)
I suspect a gcc false positive.
"Fixes" https://github.com/harfbuzz/harfbuzz/issues/5589
|
|
37fd8c0b
|
2025-09-29T23:00:21
|
|
[alloc-pool] Fix alignment (#5592)
We were aligning on the bytes remaining. Align on actual
pointer.
Probably fixes https://github.com/harfbuzz/harfbuzz/issues/5591
|
|
051a885c
|
2025-09-29T13:20:00
|
|
Bump github/codeql-action from 3.30.3 to 3.30.5 (#5590)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/192325c86100d080feab897ff886c34abd4c83a3...3599b3baa15b485a2e49ef411a7a4bb2452e7f93)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.30.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
|
720f1a3b
|
2025-09-28T00:55:46
|
|
12.0.0
|
|
0952bc0a
|
2025-09-26T09:10:28
|
|
[subset] de-duplicate features (#5494)
|
|
6a2453bb
|
2025-09-25T21:54:20
|
|
Reapply "[VARC] Graduate out of experimental" (#5588)
This reverts commit 673934f2ce569b81a2ac094d2316033425ab6928.
|
|
9b043da7
|
2025-09-24T16:39:38
|
|
[shape] Use a buffer scratch flag for fraction slash (#5587)
* [shape] Use a buffer scratch flag for fraction slash
* Remove unused non-ascii scratch flag
|
|
88844e2e
|
2025-09-24T13:28:28
|
|
[rust] Tweak debugoptimized again
Now on par in perf with release, but nice stacktraces.
|
|
ba4f92f2
|
2025-09-24T13:12:50
|
|
[rust] Change debugoptimized build to inherit dev instead of release
I was getting useless profiler stacks with the previous setup.
This one makes the debugoptimized build 30% slower than release
in one of my benchmarks, but at least we get useful stacktraces
by default.
|
|
fc761725
|
2025-09-24T12:42:53
|
|
[ValueFormat] comment
|
|
9eb4318e
|
2025-09-24T00:04:19
|
|
Fix fuzzer issue
|
|
62ec6470
|
2025-09-24T01:49:57
|
|
[shape] Use a buffer scratch flag for continuations (#5586)
Use it in form_clusters instead of ascii flag, for speedup.
|
|
52eb9595
|
2025-09-24T00:22:56
|
|
[rust] Don't use panic_immediate_abort (#5585)
It has changed. Use optimize_for_size which seems to have the
same size reduction effect.
Fixes https://github.com/harfbuzz/harfbuzz/issues/5584
|
|
d350cb83
|
2025-09-23T19:47:01
|
|
Speed up ValueFormat len() calc
|
|
88dfa2ab
|
2025-09-23T22:34:02
|
|
On gcc <= 12 don't use num fast path (#5578)
Fixes https://github.com/harfbuzz/harfbuzz/issues/5456
|
|
3b1e9efb
|
2025-09-23T19:09:46
|
|
[bit-page] Remove leftover bits from iterator
|
|
7750fc2c
|
2025-09-23T20:56:53
|
|
[buffer] Remove HB_BUFFER_SCRATCH_FLAG_HAS_GLYPH_FLAGS (#5583)
It complicated correctness analysis. Remove it and always
propagate flags, which are much faster now anyway.
|
|
2bcee180
|
2025-09-23T20:44:44
|
|
[shape] Fix up propagate-flags after previous changes (#5582)
|
|
c4ad58e3
|
2025-09-23T18:32:42
|
|
[shape] Fix typo in propagate_flags
|
|
73afc003
|
2025-09-23T20:30:06
|
|
Propagate flags speedup (#5581)
* [shape] Micro-opt
* [shape] Speed up propagate_flags
|
|
fdb80534
|
2025-09-23T14:32:41
|
|
[subset-repacker] bug fix: copy markFilteringSet field if exists (#5579)
|
|
5b2940d6
|
2025-09-23T16:00:14
|
|
Merge pull request #5580 from harfbuzz/flight
Micro-opts
|
|
98d14b43
|
2025-09-23T13:32:15
|
|
[chaincontext] Micro-optimize a conditional away
|
|
e3a5152b
|
2025-09-23T11:55:26
|
|
[buffer] Micro-opt next_glyphs()
|
|
88b7a4f4
|
2025-09-23T11:23:03
|
|
[set-digest] Comments
|
|
516c35cf
|
2025-09-23T10:13:28
|
|
[buffer-message] Disable "more" messages by default (#5577)
This was not suppoosed to be turned on by default, as it has a
performance overhead. Instead, tools like Crowbar should define
HB_BUFFER_MESSAGE_MORE to 1 when building HarfBuzz.
|
|
b2a6375b
|
2025-09-22T17:31:11
|
|
[ot-shape] Update update_digest() calls
Correction to ccfd1ae2d68b920702c10b34711b72d5ac6ad39c
|
|
3ce3853a
|
2025-09-22T17:17:28
|
|
Merge pull request #5575 from harfbuzz/apply-forward-speedup
[apply-forward] Speed up glyph skipping
|
|
b58efec2
|
2025-09-22T17:13:34
|
|
Merge pull request #5576 from harfbuzz/buffer-digest-retain
[buffer] Retain digest in the buffer
|
|
eeb16bd4
|
2025-09-22T16:33:52
|
|
[apply-forward] Speed up glyph skipping
6% speedup in Roboto-Regular benchmark.
|
|
ccfd1ae2
|
2025-09-22T16:48:32
|
|
[buffer] Retain digest in the buffer
We don't have to reinitialize it for GPOS now, showing some
1.5% speedup on Roboto-Regular benchmark.
Over time we can change the various gsub_pauses to update the digest
in-place instead of returning true.
|
|
7ec40c2b
|
2025-09-22T15:02:01
|
|
Merge pull request #5574 from harfbuzz/iup-speedup
Iup speedup
|
|
19b026b3
|
2025-09-22T14:48:42
|
|
[iup] Use a member pointer
|
|
34771620
|
2025-09-22T14:45:42
|
|
[iup] Add an early exit
|
|
1c7c3e50
|
2025-09-22T14:36:02
|
|
[iup] Micro-optimize
Doesn't matter.
|
|
7497c414
|
2025-09-22T19:58:28
|
|
11.5.1
|
|
61caa7bc
|
2025-09-15T10:24:19
|
|
Bump hendrikmuhs/ccache-action from 1.2.18 to 1.2.19
Bumps [hendrikmuhs/ccache-action](https://github.com/hendrikmuhs/ccache-action) from 1.2.18 to 1.2.19.
- [Release notes](https://github.com/hendrikmuhs/ccache-action/releases)
- [Commits](https://github.com/hendrikmuhs/ccache-action/compare/63069e3931dedbf3b63792097479563182fe70d1...bfa03e1de4d7f7c3e80ad9109feedd05c4f5a716)
---
updated-dependencies:
- dependency-name: hendrikmuhs/ccache-action
dependency-version: 1.2.19
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
6cbe46ae
|
2025-09-15T10:20:04
|
|
Bump github/codeql-action from 3.30.1 to 3.30.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.1 to 3.30.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/f1f6e5f6af878fb37288ce1c627459e94dbf7d01...192325c86100d080feab897ff886c34abd4c83a3)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.30.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
a84882ff
|
2025-09-22T10:26:00
|
|
Bump fonttools from 4.59.2 to 4.60.0 in /.ci
Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.59.2 to 4.60.0.
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](https://github.com/fonttools/fonttools/compare/4.59.2...4.60.0)
---
updated-dependencies:
- dependency-name: fonttools
dependency-version: 4.60.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
fa7b7fd8
|
2025-09-18T09:31:05
|
|
Merge pull request #5570 from harfbuzz/alloc-pool-improvements
[alloc-pool] Implement alignment
|
|
e1fd2bee
|
2025-09-18T11:18:09
|
|
[alloc-pool] Reduce memory usage by reclaiming some discards
|
|
a22add25
|
2025-09-18T11:04:06
|
|
[alloc-pool] Implement alignment
|
|
08ff7200
|
2025-09-18T10:57:43
|
|
[set] Speed up iterator
|
|
23024337
|
2025-09-17T15:32:46
|
|
[instancer/iup] Reduce mallocs again
Perhaps shrink() shouldn't default to realloc. Working on it.
|
|
80a6f4b6
|
2025-09-16T22:32:13
|
|
Merge pull request #5569 from harfbuzz/instancer-opt-more
Instancer opt more
|
|
2be836c1
|
2025-09-17T00:31:50
|
|
Revert "[instancer] Preallocate coordinate maps from alloc pool as well"
This reverts commit 3f71afe7605cdc7260990f8925e6ed49521fe728.
Slowed things down.
|
|
3f71afe7
|
2025-09-17T00:22:39
|
|
[instancer] Preallocate coordinate maps from alloc pool as well
|
|
c03e1e0a
|
2025-09-16T18:15:51
|
|
[iup] Use a bit-page instead of bit-set
Reject large contours instead.
|
|
d4cc4823
|
2025-09-16T17:00:38
|
|
[instancer/tuplevar] Tune allocation size
|
|
5b04b40d
|
2025-09-16T16:52:53
|
|
[instancer/tuplevars] Allocate compiled_deltas from alloc pool
|
|
ea9b7de4
|
2025-09-16T16:45:02
|
|
[instancer/tuplevars] Allocate compiled_tuple_headers from alloc pool
|
|
bdac0aec
|
2025-09-16T16:42:32
|
|
[vector] Make shrink() useful in un-owned vectors
|
|
c2f21215
|
2025-09-16T16:29:23
|
|
[vector] Simplify allocate_from_pool / set_storage
|
|
3ace0323
|
2025-09-16T11:17:29
|
|
Merge pull request #5568 from harfbuzz/tuplevar-assignment-pool
[tuplevar] Use pool for assignment / copy construction
|
|
fb0ef230
|
2025-09-16T11:16:30
|
|
Revert "[tuplevars] Allocate from pool"
This reverts commit 94d78de954ab22f3717cc399920670f877616567.
Slowed things down.
|
|
94d78de9
|
2025-09-16T11:13:19
|
|
[tuplevars] Allocate from pool
|
|
f7e2d9a0
|
2025-09-16T11:10:49
|
|
[alloc-pool] Tweak
|
|
f5fdf426
|
2025-09-16T02:28:29
|
|
[tuplevar] Use pool for duplicating
|
|
53243ad2
|
2025-09-16T02:15:21
|
|
Merge pull request #5567 from harfbuzz/tuplevalues-micro-opt
[tuplevalues] Speed up encoding
|
|
f9cd59ae
|
2025-09-16T01:45:36
|
|
[tuplevar] More use of pool
|
|
12ce710f
|
2025-09-16T01:44:47
|
|
[tuplevar] Use alloc-pool instead of custom pool
|
|
43e017f8
|
2025-09-16T01:31:21
|
|
[tupledelta] Micro optimize
|
|
ebdeb2e3
|
2025-09-16T01:09:46
|
|
[tuplevalues] Speed up encoding
|
|
56e10f04
|
2025-09-16T01:02:12
|
|
Merge pull request #5566 from harfbuzz/alloc-pool
Alloc pool
|
|
755ed109
|
2025-09-16T00:40:28
|
|
Add hb-alloc-pool and use in gvar instancer
|
|
d6b08019
|
2025-09-15T23:56:25
|
|
Rename hb-pool to hb-free-pool
|
|
e896575f
|
2025-09-15T21:13:43
|
|
Merge pull request #5565 from harfbuzz/vector-resize-simplify
[vector] Simplify resize()
|
|
82370913
|
2025-09-15T20:16:52
|
|
[vector] Simplify resize()
|
|
a6aa981b
|
2025-09-15T20:23:28
|
|
Merge pull request #5564 from harfbuzz/instancer-optimize-more2
[iup] Reuse more allocations
|
|
c56ef9ed
|
2025-09-15T20:10:54
|
|
[instancer] Reuse more allocations
These allocs are scratched. Don't free them, so we reuse.
|
|
8e3e8c66
|
2025-09-15T19:49:11
|
|
[iup] Reuse more allocations
|
|
bac2a67c
|
2025-09-15T19:30:46
|
|
Merge pull request #5563 from harfbuzz/instancer-gvar-consolidate-mallocs
Instancer gvar consolidate mallocs
|
|
82ca73a2
|
2025-09-15T19:12:40
|
|
[iup] Reuse more vector allocs
|
|
e42714cf
|
2025-09-15T19:05:38
|
|
[iup] Reuse bit-set allocs
|
|
54ac33cc
|
2025-09-15T19:00:34
|
|
[iup] Reuse more mallocs
|
|
045bd691
|
2025-09-15T18:56:55
|
|
[iup] Use bit-set instead of set
|
|
5e816ef7
|
2025-09-15T18:43:22
|
|
[iup] Reuse vectors
|
|
a64ab6c6
|
2025-09-15T17:47:07
|
|
[iup] Reduce hb_set_t allocs
|
|
5928a3c7
|
2025-09-15T17:17:15
|
|
[iup] Reduce vector allocs
|
|
df18518f
|
2025-09-15T17:14:31
|
|
[iup] Don't sqrt
|
|
db86e546
|
2025-09-15T16:41:31
|
|
[instancer/gvar] Combine peak_coords mallocs into one chunk
|
|
54ab8f0d
|
2025-09-15T18:20:59
|
|
[repacker] make repacker object ids stable.
Prior to this change the object id for a vertex in the repacker graph is it's position in the topological ordering. As a result after each sorting the object ids change. This decouples the topological sorting from the object id assignments. A separate ordering list is retained. This simplifies handling around object ids which no longer needs to account for them shifting, and improves performance by eliminating the step of reassigned link object ids after each sort.
|
|
26cc7355
|
2025-09-15T15:49:36
|
|
[vector] Remove a comment
|
|
9d004544
|
2025-09-16T00:16:30
|
|
Fix invalid reinterpret_cast (#5558)
* Fix invalid reinterpret_cast
reinterpret_cast from non-atomic object to atomic object is not valid.
https://eel.is/c++draft/atomics.types.generic#general-3
>[Note 2: The representation of an atomic specialization
>need not have the same size and alignment requirement as
>its corresponding argument type. — end note]
https://eel.is/c++draft/basic.compound#5
>5 Two objects a and b are pointer-interconvertible if
>(5.1) they are the same object, or
>(5.2) one is a union object and the other is a non-static
>data member of that object ([class.union]), or
>(5.3) one is a standard-layout class object and the other
>is the first non-static data member of that object or any
>base class subobject of that object ([class.mem]), or
>(5.4) there exists an object c such that a and c are
>pointer-interconvertible, and c and b are pointer-interconvertible.
>If two objects are pointer-interconvertible, then they have
>the same address, and it is possible to obtain a pointer
>to one from a pointer to the other via a reinterpret_cast
>([expr.reinterpret.cast]).
objects of types `int` and `std::atomic<int>` are not
pointer-interconvertible (an object of type `int` is not
first non-static data member of `std::atomic<int>`)
https://eel.is/c++draft/basic.lval#11
>11 An object of dynamic type T-obj is type-accessible through
>a glvalue of type T-ref if T-ref is similar ([conv.qual]) to:
>(11.1) T-obj,
>(11.2) a type that is the signed or unsigned type corresponding
>to T-obj, or
>(11.3) a char, unsigned char, or std::byte type.
>If a program attempts to access ([defns.access]) the stored
>value of an object through a glvalue through which it is not
>type-accessible, the behavior is undefined
The original code resulted in undefined behavior.
* revert code formatting
* fix const qualifier in type for atomic operation.
* implement copy and move ctors (assignment-operators) and swap functions.
* swap-functions replaced as frendly members, common header includes returned.
* add HB_ prefix to defined macro.
* some formatting.
|
|
43284d1f
|
2025-09-15T20:11:36
|
|
fix clang-format repeated flags (#5559)
* fix clang-format repeated flags
some flags were listed twice with opposite meanings
* Change AfterStruct formatting option to true
---------
Co-authored-by: Behdad Esfahbod <behdad@behdad.org>
|
|
b33f6fd2
|
2025-09-15T01:11:30
|
|
Merge pull request #5555 from harfbuzz/instancer-gvar-micro-opts
Instancer gvar micro opts
|
|
e310f811
|
2025-09-15T00:58:07
|
|
[instancer/gvar] Speed up hash lookup-set
|
|
7a57c3c1
|
2025-09-15T00:52:50
|
|
[instancer/gvar] Simplify sorting
|
|
b51ea436
|
2025-09-15T00:44:49
|
|
[gvar] Micro-opt instancing
|
|
08fddebe
|
2025-09-14T20:43:31
|
|
Merge pull request #5554 from harfbuzz/lazy-interms
Lazy interms
|
|
4d590199
|
2025-09-14T18:04:51
|
|
[instancer/tuplevar] Allocate intermediates array on demand
|
|
35212ba3
|
2025-09-14T17:46:13
|
|
[gvar] Change a storage type
No functional change.
|
|
4974f5eb
|
2025-09-14T16:39:29
|
|
Merge pull request #5553 from harfbuzz/instancer-tuplevars-hashmap-opt
Instancer tuplevars hashmap opt
|
|
20457df5
|
2025-09-14T16:05:29
|
|
[map] Tune for small maps
|
|
323901f8
|
2025-09-14T13:47:32
|
|
[instancer/tuplevars] Reduce work by combining two loops
|
|
eb6de664
|
2025-09-14T13:13:22
|
|
[instancer/tuplevars] Reduce work
|
|
ebcc20d0
|
2025-09-14T00:03:51
|
|
Merge pull request #5552 from harfbuzz/speedup-map-copy
Speedup map copy
|