|
7cc79a8a
|
2022-11-21T12:09:24
|
|
[vector] Adjust comment
|
|
e82a3c69
|
2022-11-21T12:00:10
|
|
[array/vector] Optimize range-based for-loop
Avoid bounds-checking.
|
|
0387182c
|
2022-11-21T11:05:47
|
|
[ot-map] Minor refactor features[i] access
|
|
5ee6d5d7
|
2022-11-21T11:00:29
|
|
[cff] Add memory-barrier to INDEX
Like we do for ArrayOf.
|
|
6905d36d
|
2022-11-21T10:51:33
|
|
[cff] Fix fetch_op() bounds-checking
|
|
b51ab1a9
|
2022-11-21T10:27:07
|
|
[cff] Optimize byte_str_ref_t
Make it 16 bytes instead of 24. This struct is used in the subroutine
call stack heavily.
This change makes the HB AdobeVFPrototype benchmark to become faster
than FT one, with about 6% speedup as a result of this change.
|
|
7a39464b
|
2022-11-21T09:48:54
|
|
[cff] Hide members of byte_str_ref_t
|
|
18141f00
|
2022-11-21T09:47:03
|
|
[cff] Move a sub_array call
No logic change.... I hope?!
|
|
f66415cd
|
2022-11-21T09:39:27
|
|
[cff] Move initialization of a type to constructor
|
|
70a5cd53
|
2022-11-21T08:52:33
|
|
[algs] Assert trivial copy assignable in stable_sort
|
|
9bb39423
|
2022-11-20T17:40:54
|
|
[algs] Simplify stable_sort signatures
|
|
d119568d
|
2022-11-20T14:11:51
|
|
[cbdt] Use vector tail()
|
|
87a88117
|
2022-11-20T14:10:39
|
|
[object] Use vector tail()
|
|
76ce390b
|
2022-11-20T13:54:56
|
|
[ucd] Document algorithms
|
|
ed43bc51
|
2022-11-20T13:10:19
|
|
[buffer] Move delete_glyphs_inplace() here
|
|
dd88dae8
|
2022-11-19T15:22:39
|
|
[unicode] Simplify set_funcs a bit more
|
|
2d8ff3bc
|
2022-11-19T15:23:44
|
|
[unicode] Destroy user_data in set_funcs fail paths
This is what the font_funcs / draw_funcs do.
|
|
527823cc
|
2022-11-19T15:19:08
|
|
[unicode] Destroy user_data in set_funcs fail paths
This is what the font_funcs / draw_funcs do.
|
|
56d6b699
|
2022-11-19T15:08:50
|
|
[font/draw] Remove unneeded branch
The preamble sets user_data/destroy to nullptr if func is nullptr.
|
|
976bb26c
|
2022-11-19T15:06:23
|
|
[draw] Optimize set_func functions
|
|
114167a9
|
2022-11-19T14:47:45
|
|
[font] Optimize set_func functions
|
|
f9d7b303
|
2022-11-19T14:20:36
|
|
[thai] Use smaller type for arrays
No logic change.
|
|
72c4e431
|
2022-11-19T13:40:33
|
|
[use-table] Add a OPTIMIZE_SIZE version
|
|
83c3a91d
|
2022-11-19T13:34:58
|
|
[gen-use-table] Report fullCost
|
|
ba08de62
|
2022-11-19T13:14:18
|
|
[ucd] Change OPTIMIZE_SIZE to compression level 9
Also changes default compression level from 3 to 5, but that shows
no change in the generated table size.
|
|
b68f9f3c
|
2022-11-18T21:35:35
|
|
[machinery] Adjust comment
|
|
a47ba1dc
|
2022-11-18T21:14:07
|
|
[lazy-pointer] Hide instance
|
|
281b4705
|
2022-11-18T20:25:05
|
|
[pool] Rewrite a loop as dagger
|
|
3ff8abf2
|
2022-11-18T19:35:49
|
|
Revert "[map] Allow std::move-ing keys into the map"
This reverts commit f657ef7e57c889309c2d9d37934368ca255f9d5b.
This breaks many compilers with messages like this:
hb-subset-plan.hh:226: undefined reference to `OT::head::tableTag'
I'm out of my depth re how to fix it.
|
|
039e476b
|
2022-11-18T19:26:02
|
|
[test-vector] Test sink-move'ing
|
|
a3a218ed
|
2022-11-18T19:24:41
|
|
[map] Add a couple more sink interfaces
|
|
90226eab
|
2022-11-18T19:21:58
|
|
[test-map] Test inserting shared_ptr key
|
|
f657ef7e
|
2022-11-18T19:17:03
|
|
[map] Allow std::move-ing keys into the map
|
|
a1768ad8
|
2022-11-18T19:08:34
|
|
[map] Fix use of !=
|
|
e74b372b
|
2022-11-18T18:41:39
|
|
[test-map] Test moving values
|
|
a9c6a20b
|
2022-11-18T18:29:12
|
|
[map] Support moving value in sink interface
|
|
1bf9afaa
|
2022-11-18T18:20:50
|
|
[test-vector] Test sink interface
|
|
fa0e4b04
|
2022-11-18T18:20:14
|
|
[test-map] Test sink interface
|
|
1c612a85
|
2022-11-18T18:18:42
|
|
[test-set] Test sinking range
|
|
356708e3
|
2022-11-18T18:17:34
|
|
[test-set] Test length of iterator
|
|
2892fc71
|
2022-11-18T18:03:59
|
|
[vector] Add std::move to pop()
This was removed in 76fc27713f52cc338f0325650c2c7798f5cfa2ce,
but I believe that was faultly. It was because of a bad move
implementation in the set.
|
|
921f45f4
|
2022-11-18T17:26:58
|
|
[array] Rewrite hash() as dagger
|
|
21311731
|
2022-11-18T17:24:23
|
|
[array] Remove hash specializations for bytes
Not needed.
|
|
bef5a1c8
|
2022-11-18T17:22:17
|
|
[vector] Comment
|
|
69b41f92
|
2022-11-18T17:04:34
|
|
[vector] Simplify shift_down_vector()
Compiler is smarter than I am.
|
|
1dd9396c
|
2022-11-18T17:01:14
|
|
[vector] Optimize grow_vector() for size
Again, compiler is smarter than I am.
|
|
d36f6881
|
2022-11-18T17:00:07
|
|
[vector] Optimize shrink_vector for size
Compiler is smarter than I am.
|
|
bc8eded2
|
2022-11-18T16:51:24
|
|
[vector] Remove a for loop
|
|
afd9a58b
|
2022-11-18T16:46:01
|
|
[vector] Save a couple hb_iter() invocations
|
|
3ead9863
|
2022-11-18T16:43:47
|
|
[map] Add size()
|
|
42db8be1
|
2022-11-18T16:41:50
|
|
[map] Minor remove if condition
|
|
4ec70698
|
2022-11-18T16:39:30
|
|
[map] Rewrite hash() as dagger
Somehow our daggers instead of for loop save size. I cannot
pinpoint why, other than maybe not inlining.
|
|
025a68cb
|
2022-11-18T16:33:04
|
|
[map] Optimize copy resizing logic
|
|
f1d71687
|
2022-11-18T16:31:27
|
|
[map] Change bucket_for_hash() to item_for_hash()
|
|
d012f9a9
|
2022-11-18T16:29:06
|
|
[map] Change bucket_for() to item_for()
|
|
68a29020
|
2022-11-18T16:02:45
|
|
[bit-page] Write hash() as dagger
|
|
87271e1b
|
2022-11-18T16:01:23
|
|
[bit-page] Write get_population as dagger
|
|
744eb6ba
|
2022-11-18T15:56:06
|
|
[bit-page] Write is_empty() as dagger
|
|
43a4028f
|
2022-11-18T15:54:34
|
|
[algs] Move hb_vector_size_t to bit-page as only user
|
|
01f961ac
|
2022-11-18T15:47:17
|
|
[gsubgpos] Minor call hb_iter() instead of ->iter() directly
|
|
bba57655
|
2022-11-18T14:52:17
|
|
[gsubgpos] Remove a few unnecessary namespace invocations
|
|
b4d0d160
|
2022-11-18T14:47:33
|
|
[gsubgpos] Rewrite a couple apply() functions as daggers
|
|
76c8214e
|
2022-11-18T12:30:46
|
|
[gsubgpos] Move member around
|
|
81a57300
|
2022-11-17T16:59:36
|
|
[map] Optimize storage
|
|
ae080bf2
|
2022-11-17T16:34:58
|
|
[map] Initialize key and value explicitly
If they are of int time they won't be initialized otherwise.
|
|
1d41b9cb
|
2022-11-17T16:26:48
|
|
[user-data] std::move item
|
|
ff0bb748
|
2022-11-17T16:17:37
|
|
[map] Call item_t constructor/destructor directly
|
|
5c887159
|
2022-11-17T16:14:16
|
|
[map] Add item_t.destruct()
|
|
7f830408
|
2022-11-17T16:10:37
|
|
[map] Simplify (de)construction of item_t
|
|
99103bd9
|
2022-11-17T15:57:06
|
|
[map] Destruct objects when clearing
|
|
4caad572
|
2022-11-17T15:51:39
|
|
[test-map] Add test for reset
I expect this to leak now, since we don't destruct items.
|
|
e93c01c3
|
2022-11-17T15:50:00
|
|
[map] Rename item clear() to construct()
|
|
fc22d706
|
2022-11-17T15:46:48
|
|
[test-map] Don't insert null smart-pointers in map
Dereferencing them is not supported anymore after
3aad7c2ddffc3f882bf33504dbac31be491c4d72
We don't support that for regular pointers, so don't supporting
them for smart-pointers sounds right to me.
|
|
89637746
|
2022-11-17T15:25:45
|
|
[map] Don't resize map if not necessary
|
|
7595fa2d
|
2022-11-17T15:19:29
|
|
[map] Fix copy-assignment operator
Ouch!
|
|
41f4bdac
|
2022-11-17T15:16:00
|
|
[map] Fix resize during copy-construction/assignment
|
|
3aad7c2d
|
2022-11-17T15:10:47
|
|
[algs] Remove smart-pointers from hb_hash()
hb_deref() handles them. I think this code predated that.
|
|
7bd10172
|
2022-11-17T15:01:55
|
|
[map] Minor use hb_iter instead of hb_array
|
|
238fc147
|
2022-11-17T14:58:50
|
|
[map] Simplify iterators
|
|
410c14bf
|
2022-11-17T14:53:00
|
|
[map] Fix equality
Ouch!
|
|
6dfd4a16
|
2022-11-16T22:44:22
|
|
[ot-font] Remove stale TODO
|
|
a0bde1e1
|
2022-11-16T21:27:12
|
|
[open-type] Remove (Sorted)ArrayOf.sub_array()
|
|
f2b5db70
|
2022-11-16T21:22:43
|
|
[vector] Remove .sub_array ()
|
|
c7d57dcf
|
2022-11-16T21:21:31
|
|
[vector/array] Simplify qsort()
|
|
1610008e
|
2022-11-16T20:02:36
|
|
[gsubgpos] Minor remove call to hb_iter
|
|
19ec01d2
|
2022-11-16T19:14:42
|
|
[gsubgpos] Sprinkle const around
|
|
561946c7
|
2022-11-16T17:58:59
|
|
[layout] Comment
|
|
2268207c
|
2022-11-16T17:51:22
|
|
[layout] Update comment
|
|
658f8f43
|
2022-11-16T17:50:35
|
|
[layout] Comment
|
|
27a8fe7d
|
2022-11-16T17:49:44
|
|
[layout] Only update buffer digest if buffer changed by a pause
|
|
8b2a2111
|
2022-11-16T16:57:44
|
|
[layout] Keep digest updated in the context
Don't recompute digest after every (applied) GSUB lookup.
|
|
a5964a2d
|
2022-11-16T16:45:23
|
|
[layout] Minor simplify
|
|
44396197
|
2022-11-16T16:35:00
|
|
[perf] Add fa-words.txt and use in shape benchmark
|
|
80b87588
|
2022-11-16T16:26:41
|
|
[layout] Add a buffer message for digest-skipped lookups
|
|
afa71ee8
|
2022-11-16T16:22:45
|
|
Fix alignment error
|
|
dff1b809
|
2022-11-16T16:19:05
|
|
[buffer] Add .digest() and use
|
|
654a2eaf
|
2022-11-16T16:09:04
|
|
[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.
|
|
15b6c325
|
2022-11-16T15:59:13
|
|
[layout] Use a buffer digest for GPOS to skip whole lookups
|
|
a053b84c
|
2022-11-16T14:39:25
|
|
[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.
|
|
20654cd8
|
2022-11-16T14:15:58
|
|
[set-digest] Minor no logic change
|