Behdad Esfahbod
025a68cb07
[map] Optimize copy resizing logic
2022-11-18 16:33:04 -07:00
Behdad Esfahbod
f1d716871d
[map] Change bucket_for_hash() to item_for_hash()
2022-11-18 16:31:27 -07:00
Behdad Esfahbod
d012f9a9b3
[map] Change bucket_for() to item_for()
2022-11-18 16:29:06 -07:00
Behdad Esfahbod
68a29020c5
[bit-page] Write hash() as dagger
2022-11-18 16:02:45 -07:00
Behdad Esfahbod
87271e1b2e
[bit-page] Write get_population as dagger
2022-11-18 16:01:23 -07:00
Behdad Esfahbod
744eb6baf9
[bit-page] Write is_empty() as dagger
2022-11-18 15:56:06 -07:00
Behdad Esfahbod
43a4028f0e
[algs] Move hb_vector_size_t to bit-page as only user
2022-11-18 15:54:34 -07:00
Behdad Esfahbod
01f961ac3a
[gsubgpos] Minor call hb_iter() instead of ->iter() directly
2022-11-18 15:47:17 -07:00
Behdad Esfahbod
bba5765583
[gsubgpos] Remove a few unnecessary namespace invocations
2022-11-18 14:52:17 -07:00
Behdad Esfahbod
b4d0d1608d
[gsubgpos] Rewrite a couple apply() functions as daggers
2022-11-18 14:47:33 -07:00
Behdad Esfahbod
76c8214eb5
[gsubgpos] Move member around
2022-11-18 12:30:46 -07:00
Behdad Esfahbod
81a573008e
[map] Optimize storage
2022-11-17 16:59:36 -07:00
Behdad Esfahbod
ae080bf202
[map] Initialize key and value explicitly
...
If they are of int time they won't be initialized otherwise.
2022-11-17 16:34:58 -07:00
Behdad Esfahbod
1d41b9cb3c
[user-data] std::move item
2022-11-17 16:26:48 -07:00
Behdad Esfahbod
ff0bb74895
[map] Call item_t constructor/destructor directly
2022-11-17 16:17:37 -07:00
Behdad Esfahbod
5c88715949
[map] Add item_t.destruct()
2022-11-17 16:14:16 -07:00
Behdad Esfahbod
7f83040836
[map] Simplify (de)construction of item_t
2022-11-17 16:10:37 -07:00
Behdad Esfahbod
99103bd976
[map] Destruct objects when clearing
2022-11-17 15:57:06 -07:00
Behdad Esfahbod
4caad5720c
[test-map] Add test for reset
...
I expect this to leak now, since we don't destruct items.
2022-11-17 15:51:39 -07:00
Behdad Esfahbod
e93c01c3ae
[map] Rename item clear() to construct()
2022-11-17 15:50:00 -07:00
Behdad Esfahbod
fc22d706fe
[test-map] Don't insert null smart-pointers in map
...
Dereferencing them is not supported anymore after
3aad7c2ddf
We don't support that for regular pointers, so don't supporting
them for smart-pointers sounds right to me.
2022-11-17 15:47:43 -07:00
Behdad Esfahbod
896377463f
[map] Don't resize map if not necessary
2022-11-17 15:25:45 -07:00
Behdad Esfahbod
7595fa2d9a
[map] Fix copy-assignment operator
...
Ouch!
2022-11-17 15:23:14 -07:00
Behdad Esfahbod
41f4bdac35
[map] Fix resize during copy-construction/assignment
2022-11-17 15:16:00 -07:00
Behdad Esfahbod
3aad7c2ddf
[algs] Remove smart-pointers from hb_hash()
...
hb_deref() handles them. I think this code predated that.
2022-11-17 15:10:47 -07:00
Behdad Esfahbod
7bd101728a
[map] Minor use hb_iter instead of hb_array
2022-11-17 15:01:55 -07:00
Behdad Esfahbod
238fc14716
[map] Simplify iterators
2022-11-17 14:58:50 -07:00
Behdad Esfahbod
410c14bfa2
[map] Fix equality
...
Ouch!
2022-11-17 14:53:00 -07:00
Behdad Esfahbod
6dfd4a16e7
[ot-font] Remove stale TODO
2022-11-16 22:44:22 -07:00
Behdad Esfahbod
a0bde1e1ea
[open-type] Remove (Sorted)ArrayOf.sub_array()
2022-11-16 21:27:12 -07:00
Behdad Esfahbod
f2b5db700f
[vector] Remove .sub_array ()
2022-11-16 21:22:57 -07:00
Behdad Esfahbod
c7d57dcf26
[vector/array] Simplify qsort()
2022-11-16 21:21:31 -07:00
Behdad Esfahbod
1610008e62
[gsubgpos] Minor remove call to hb_iter
2022-11-16 20:02:36 -07:00
Behdad Esfahbod
19ec01d25c
[gsubgpos] Sprinkle const around
2022-11-16 19:14:42 -07:00
Behdad Esfahbod
561946c7d5
[layout] Comment
2022-11-16 17:59:29 -07:00
Behdad Esfahbod
2268207c19
[layout] Update comment
2022-11-16 17:51:22 -07:00
Behdad Esfahbod
658f8f4391
[layout] Comment
2022-11-16 17:50:35 -07:00
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