|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
90ea408e
|
2025-09-13T18:18:08
|
|
[map] Speed up copying of trivially-assignable types
|
|
fd282dcf
|
2025-09-13T17:56:34
|
|
[map] Speed up operator= for trivial item types
|
|
1f936e23
|
2025-09-13T16:58:45
|
|
[instancer] Try to move instead of copy some tuples
|
|
2319d763
|
2025-09-13T16:21:34
|
|
[TupleValues] Micro-optimize encoding
Also, a check for 32bit values in the word-encoding function
was missing. Ouch.
|
|
f2c4ab45
|
2025-09-13T16:14:55
|
|
[instancer/varstore] Micro-optimize
|
|
b97369bb
|
2025-09-13T14:10:20
|
|
Merge pull request #5549 from harfbuzz/instancer-varstore-optimize-compromise
[instancer/varstore] Only optimize instanced varstore incrementally
|
|
cf6c9d8a
|
2025-09-13T13:49:56
|
|
[instancer/varstore] Put back sort again
In testing with GoogleSansFlex, this produces slightly smaller
result.
|
|
c7e46ab2
|
2025-09-13T12:54:18
|
|
[instancer/varstore] Avoid copies in loops
|
|
7a430de3
|
2025-09-13T00:08:10
|
|
Add -Wpessimizing-move warning
Part of https://github.com/harfbuzz/harfbuzz/issues/5550
|
|
a4a50892
|
2025-09-12T23:41:40
|
|
[instancer/varstore] Speed up encoding merging
Don't recalculate chars from all row data.
|
|
f0a1289a
|
2025-09-12T19:25:57
|
|
[instancer/varstore] Massage optimizer a bit
|
|
a878dca0
|
2025-09-12T19:19:07
|
|
[instancer/varstore] Remove sorting from the optimizer
Just work with incoming order.
|
|
e16be515
|
2025-09-12T17:42:57
|
|
[instancer/varstore] Only optimize instanced varstore incrementally
See comments. This basically wipes of the varstore optimization
costs out of the profiles, which saves eg. 25% total time in
GoogleSansFlex instantiation, with practically no file size
downside.
|
|
a4087e7f
|
2025-09-12T15:48:26
|
|
[instancer/varlib] Minor non-functional change
|
|
d8c1bce2
|
2025-09-12T14:39:38
|
|
[instancer/varstore] Mark a function HOT
|
|
aa58b43d
|
2025-09-12T14:24:41
|
|
[subset] Introduce HB_SUBSET_FLAGS_RETAIN_NUM_GLYPHS. (#5547)
Used in conjunction with retain gids, when set the num glyphs from the input font will be preserved. Empty glyphs will be inserted as necessary to maintain the num glyphs value. Put under experimental for now.
|
|
bf8929fb
|
2025-09-12T13:32:38
|
|
11.5.0
|
|
74c31861
|
2025-09-12T13:31:29
|
|
[rust] Update to HarfRust 0.3.0 (#5548)
|
|
3965e9a6
|
2025-09-12T13:12:05
|
|
[instancer/varstore] Change sort key (#5540)
See https://github.com/harfbuzz/harfbuzz/pull/5540
|
|
c9480db9
|
2025-09-12T12:22:17
|
|
[instancer/varstore] Add a heuristic to speed up optimization
|
|
dce73766
|
2025-09-12T13:56:01
|
|
[Unicode 17] Update the script direction list
|
|
0f1dab0f
|
2025-09-12T11:43:21
|
|
[instancer/varstore] More gain_from_merging optimization (#5543)
* [instancer/varstore] More gain_from_merging optimization
* [tests] Re-enable a test that was disabled until an issue fixed
See comment.
|
|
e4957b0c
|
2025-09-12T10:57:49
|
|
[varLib/instancer] Simplify gain encoding
|
|
20d7ef5f
|
2025-09-12T10:45:08
|
|
[instancer/varstore] Change gain encoding
gain can be high in theory.
|
|
ca9a8aba
|
2025-09-12T03:50:46
|
|
Revert "[instancer/varstore] Micro-optimize"
This reverts commit 7484eb5807d6127bea6b888a7d8fdad1b73a8c0b.
|
|
f12be45c
|
2025-09-12T03:42:49
|
|
[instancer/varstore] Optimize gain comparisons
|
|
7484eb58
|
2025-09-12T03:16:59
|
|
[instancer/varstore] Micro-optimize
|
|
92ec75f8
|
2025-09-12T03:13:25
|
|
[instancer/varstore] Micro-optimize
|
|
14e7d5b2
|
2025-09-12T03:04:59
|
|
[instancer/varstore] Speed up gain_from_merging
10% speedup instancing GoogleSansFlex.
|
|
006ec160
|
2025-09-12T02:52:29
|
|
[instancer/varstore] Minor refactor in anticipation of next change
|
|
aba798dd
|
2025-09-12T00:52:40
|
|
[instancer/varstore] Use heapify() instead of inserts()
|
|
12c46237
|
2025-09-12T00:05:37
|
|
Revert "[instancer/varstore] Change chars_t storage scheme"
This reverts commit aaeea5729b97813eb71b1d809212534a77436ca2.
|
|
aaeea572
|
2025-09-11T23:52:44
|
|
[instancer/varstore] Change chars_t storage scheme
Slows down. Gonna revert.
Apparently builtin popcount is not fast unless built for archs that
support it.
|
|
3dc5e3d6
|
2025-09-11T23:27:51
|
|
[instancer/varstore] Consolidate chars_t logic
|
|
fe6c9a0f
|
2025-09-11T23:23:41
|
|
[instancer/varstore] Fix a logic bug
combined_chars was moved already.
Also, see comment.
|
|
9d971169
|
2025-09-11T23:10:50
|
|
[instancer/varstore] Add a chars_t type
|
|
1a6c6d78
|
2025-09-11T21:59:41
|
|
[instancer] Micro-optimize a couple of hot comparisons
|
|
c938e8ce
|
2025-09-11T21:57:14
|
|
[instancer] Micro-optimize by using bit-set directly
|
|
266e1c24
|
2025-09-11T20:12:39
|
|
[instancer] Short-circuit some work in gain_from_merging
|
|
a34f8b31
|
2025-09-11T19:10:05
|
|
[instancer] Use bitset instead of vector for VarStore optimizer columns
~30% faster on GoogleSansFlex.
|
|
2e86070e
|
2025-09-11T18:15:19
|
|
[instancer] Don't clear a couple of resize allocations
Not needed.
|
|
01fd17d6
|
2025-09-11T17:05:03
|
|
[instancer] Reduce mallocs in create_from_tuple_var_data
|
|
23e40cd7
|
2025-09-11T16:53:44
|
|
[instancer] Reduce mallocs in gain_from_merging
|
|
3225bd73
|
2025-09-11T16:44:24
|
|
[instancer] Minor default construction simplify
|
|
3df6e510
|
2025-09-11T16:33:10
|
|
[instancer] Reduce mallocs in merge_tuple_variations
|
|
6d82b40a
|
2025-09-11T16:09:13
|
|
[instancer] Remove unnecessary vector fini
|
|
87c36992
|
2025-09-11T15:42:59
|
|
[instancer] Reduce mallocs in calc_inferred_deltas
|
|
740cbf1c
|
2025-09-11T15:30:30
|
|
[vector] Add malloc debug facility
|
|
67bddf15
|
2025-09-11T15:16:30
|
|
[instancer] Reduce mallocs in change_tuple_var_axis_limit
|
|
17aa37ab
|
2025-09-11T15:13:51
|
|
[instancer] Reduce mallocs in rebase-tent
|
|
0fbbf749
|
2025-09-10T21:11:44
|
|
[ot-tags] Update IANA subtags to 2025-08-25 (#5537)
|
|
13c8ffa0
|
2025-09-10T11:35:54
|
|
[Unicode 17] Send the new scripts to USE
|
|
f59d532b
|
2025-09-10T11:34:07
|
|
[Unicode 17] Update the USE table
|
|
5b6409f0
|
2025-09-10T11:22:02
|
|
[Unicode 17] Update the vowel constraint table
|
|
7c611a2b
|
2025-09-10T11:21:36
|
|
[Unicode 17] Update the Indic table
|
|
e189b34e
|
2025-09-10T11:19:14
|
|
[Unicode 17] Update the emoji table & cluster test
|
|
e0e0a757
|
2025-09-10T11:18:07
|
|
[Unicode 17] Update the Arabic joining script list
|
|
5b72f304
|
2025-09-10T11:17:25
|
|
[Unicode 17] Update the Arabic table
|
|
147db69b
|
2025-09-10T11:15:30
|
|
[Unicode 17] Update the UCD table
|
|
d08a72dd
|
2025-09-10T11:12:37
|
|
[Unicode 17] Add new `hb_script_t` values
|
|
dd291f48
|
2025-09-07T23:46:27
|
|
Short-circuit ASCII more (#5528)
|
|
d94851e5
|
2025-09-03T11:52:51
|
|
[rust] Use inherited codegen-units=1 in debugoptimized build
It makes significant (30% in Nastaliq benchmark) difference.
|
|
cb4548d3
|
2025-09-02T14:58:00
|
|
[subset] always generate AdvMap (#5524)
|
|
77d07304
|
2025-09-02T14:40:51
|
|
[subset] fix HVAR encoding width (#5523)
|
|
12ec6682
|
2025-09-02T14:21:57
|
|
[buffer] Micro-optimize set_masks
Somehow this specialization loop was in HarfRust / RustyBuzz.
|
|
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.
|
|
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
|
|
22f77d48
|
2025-08-30T11:39:01
|
|
11.4.5
|
|
6d1c70bf
|
2025-08-29T17:09:00
|
|
Remove unused code
|
|
01072c5c
|
2025-08-29T13:19:59
|
|
[harfrust] Require 0.2.0
|
|
c61a4f26
|
2025-08-29T02:11:52
|
|
[GPOS] Micro-optimize offset propagation
|
|
cb8b47eb
|
2025-08-29T00:08:28
|
|
[kern] Use reset_fast
|
|
772279df
|
2025-08-28T15:58:39
|
|
[utf] inline some
|
|
c6e3f5a8
|
2025-08-27T16:41:25
|
|
[aat] Reverse buffer only when necessary (#5516)
|
|
141df8b9
|
2025-08-27T16:09:35
|
|
[buffer] Adjust inlining
|
|
ff8d8e44
|
2025-08-27T15:36:48
|
|
Fixup
|
|
1091b8a9
|
2025-08-27T15:35:26
|
|
[shape-fallback] Adjust inlining
|
|
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
|
|
7d936359
|
2025-08-26T01:46:34
|
|
[aat] Clear cached buffer glyph set (#5508)
Ouch.
|
|
12b0f086
|
2025-08-26T01:29:50
|
|
[morx] Move a few initializations later (#5507)
|
|
8e2e18fe
|
2025-08-25T23:55:30
|
|
[aat] Rename a few members (#5506)
|
|
653b7722
|
2025-08-25T20:15:43
|
|
[kern] Simplify Format3 collect_glyphs() (#5505)
No idea why I wrote it that way initially.
|
|
1e5b65b7
|
2025-08-25T19:55:13
|
|
[aat] Remove unused code (#5504)
|
|
8f4778d2
|
2025-08-25T19:49:48
|
|
[aat] Implement collect_glyphs_filtered for LookupFormat10 (#5503)
Oops.
|
|
3420ef02
|
2025-08-26T00:57:35
|
|
11.4.4
|