Commit Graph

14206 Commits

Author SHA1 Message Date
Behdad Esfahbod 27a8fe7d58 [layout] Only update buffer digest if buffer changed by a pause 2022-11-16 17:49:44 -07:00
Behdad Esfahbod 8b2a211123 [layout] Keep digest updated in the context
Don't recompute digest after every (applied) GSUB lookup.
2022-11-16 16:57:44 -07:00
Behdad Esfahbod a5964a2d2a [layout] Minor simplify 2022-11-16 16:45:23 -07:00
Behdad Esfahbod 443961971a [perf] Add fa-words.txt and use in shape benchmark 2022-11-16 16:35:00 -07:00
Behdad Esfahbod 80b8758881 [layout] Add a buffer message for digest-skipped lookups 2022-11-16 16:26:41 -07:00
Behdad Esfahbod afa71ee8ef Fix alignment error 2022-11-16 16:22:45 -07:00
Behdad Esfahbod dff1b809a0 [buffer] Add .digest() and use 2022-11-16 16:19:05 -07:00
Behdad Esfahbod 654a2eafc8 [layout] Use buffer-digest for GSUB as well
Combined with previous commit, this shows up to 12% speed up with
Roboto and the en-words (ie. short strings) benchmark, about 5%
for longer English tests, and no adverse effect on heavier fonts.
2022-11-16 16:13:52 -07:00
Behdad Esfahbod 15b6c32599 [layout] Use a buffer digest for GPOS to skip whole lookups 2022-11-16 16:11:36 -07:00
Behdad Esfahbod a053b84cb9 [gsubgpos] Optimize set-digest initialization
Previously we were once collecting set-digest for each subtable,
and another time for each lookup.

Now we compute the one for each lookup simply from the ones for
its subtables.
2022-11-16 14:39:25 -07:00
Behdad Esfahbod 20654cd889 [set-digest] Minor no logic change 2022-11-16 14:29:10 -07:00
Behdad Esfahbod 95b9763dbc [set-digest] Minor simplify 2022-11-16 14:15:01 -07:00
Behdad Esfahbod 9855b678f2 [cache] Minor rewrite assertion 2022-11-16 13:37:34 -07:00
Behdad Esfahbod a10ff20562 [ft] Comment 2022-11-16 13:34:37 -07:00
Behdad Esfahbod 557be9502a [test-vector] Fix test 2022-11-16 12:47:05 -07:00
Behdad Esfahbod 9027d15410 [test-iter] Fix leak 2022-11-16 12:39:30 -07:00
Behdad Esfahbod afd716d4cd [serialize] Don't free object-pool in reset() 2022-11-16 12:28:56 -07:00
Behdad Esfahbod 02949cf64f [priority-queue] More assert adjustment 2022-11-16 12:06:44 -07:00
Behdad Esfahbod 620ddd762d [priority-queue] Fix asserts 2022-11-16 12:04:35 -07:00
Behdad Esfahbod 57de568aad [indic-table] Minor adjust empty lines 2022-11-16 11:50:40 -07:00
Behdad Esfahbod 281a2602cc Update generated file 2022-11-16 11:36:33 -07:00
Behdad Esfahbod f734c26c5c [test-vector] Test inserting set and map 2022-11-15 16:27:56 -07:00
Behdad Esfahbod 0a97d27c2b [test-iter] Add another test 2022-11-15 16:23:48 -07:00
Behdad Esfahbod e9e985682a [fallback-shape] Remove TODO 2022-11-15 16:11:57 -07:00
Behdad Esfahbod 6df8498da2 [sample.py] Fix warning 2022-11-15 15:52:04 -07:00
Behdad Esfahbod 49fe5c1e5a [glib] Remove old cruft from pre-2011 2022-11-15 15:37:23 -07:00
Behdad Esfahbod 1bd1a37837 [test] Minor 2022-11-15 15:18:36 -07:00
Behdad Esfahbod 35aa492eb7 [main] sprintf -> snprintf 2022-11-15 15:05:15 -07:00
Behdad Esfahbod 72c6962012 [buffer-deserialize-text] Fix glyph name for glyph flags
Skip "#" in glyph names.
2022-11-14 21:34:16 -07:00
Behdad Esfahbod dee26de76f [test-buffer-serialize] Allow no font 2022-11-14 16:24:25 -07:00
Behdad Esfahbod f6076890c5 Hide all mentions of name_table_overrides behind EXPERIMENTAL_API
Fixes https://github.com/harfbuzz/harfbuzz/issues/3872
2022-11-14 16:06:39 -07:00
Behdad Esfahbod ebc382a847 Revert "Avoid use values () in hb-hashmap if value_t has an overriden operator &"
This reverts commit b92e4cc009.
2022-11-14 15:59:46 -07:00
Behdad Esfahbod ff0d0d020e [meta] Use std::decay 2022-11-14 14:48:07 -07:00
Behdad Esfahbod 9650f34a84 [CI] Remove coverage testing from macos-ci 2022-11-14 14:35:55 -07:00
Behdad Esfahbod 3a9ca6aa69 [CI] Try fixing macos-ci 2022-11-14 14:35:55 -07:00
Behdad Esfahbod 24cf86b009 [array] Fix MSVC fail 2022-11-14 13:58:43 -07:00
Behdad Esfahbod a87843be3d [array] Another try at sizeof sorted_array 2022-11-14 13:43:58 -07:00
Behdad Esfahbod 72ba0b2aa2 [array] Fix MSVC fail 2022-11-14 13:41:15 -07:00
Qunxin Liu b92e4cc009 Avoid use values () in hb-hashmap if value_t has an overriden operator & 2022-11-14 13:19:55 -07:00
Behdad Esfahbod ea63e95e4c [GPOS.PairPos] Adjust unsafe-to-break for non-zero ValueFormat2
Fixes https://github.com/harfbuzz/harfbuzz/issues/3824
2022-11-14 12:36:48 -07:00
Behdad Esfahbod 85e0be1357 [vector/array] Add simple test for sorted size 2022-11-13 17:28:09 -07:00
Behdad Esfahbod 4e618557a6 [vector] Don't subclass sorted vector from unsorted
Was doubling the size unnecessarily.
2022-11-13 17:23:25 -07:00
Behdad Esfahbod 8f15fb1252 [util] Move variable closer to use 2022-11-13 17:06:58 -07:00
Behdad Esfahbod 630f09c8b6 Another hb_memcpy instead of strncpy use 2022-11-09 11:32:30 -07:00
Behdad Esfahbod cd011ceadf Use hb_memcpy instead of strncpy
Nul-termination is not intended.
2022-11-09 11:30:44 -07:00
Eli Schwartz 604fe80707 meson: fix regression in detecting freetype2/icu-uc when explicitly disabled
In #3811 / commit 53a194aa3f a broken and
half-implemented approach to kind of sort of handling the detection of
both pkg-config and cmake names for dependencies, was implemented. It
just checked for both versions with required: false, but when the build
was configured with *disabled* options, it was still found because it
was treated as auto.

Really, the problem here is trying to outsmart Meson, which handles a
lot of edge cases correctly. But it's possible, albeit very wordy, to
manually implement Meson's internal logic via if/else fallbacks. Do so
here.
2022-11-08 18:32:41 -07:00
Behdad Esfahbod c158b626c3 [name] Simplify buffer-length calculation 2022-11-08 15:05:31 -07:00
Behdad Esfahbod 55edf59d52 [name] Typo 2022-11-08 14:53:27 -07:00
Behdad Esfahbod 27c8bbcb04 Revert "[name] Simplify buffer-length calculation"
This reverts commit d70595657e.
2022-11-08 14:48:38 -07:00
Behdad Esfahbod d70595657e [name] Simplify buffer-length calculation 2022-11-08 14:15:56 -07:00