|
3edd6cdc
|
2023-06-27T06:56:00
|
|
[vector] Minor micro-optimize shrink_vector
The compiler seems to understand this pattern better.
|
|
1fc128f6
|
2023-06-26T18:34:27
|
|
Replace a few memset/memcpy's with hb_ equivalents
|
|
f79d961a
|
2023-06-26T11:32:37
|
|
[vector] Speedup push()
|
|
793f663b
|
2023-06-25T17:33:57
|
|
[vector] Speed up hb_vector_t<hb_array_t<U>>
|
|
31d971d1
|
2023-06-25T17:23:52
|
|
[vector] Sprinkle std::addressof
|
|
d36b87bd
|
2023-06-23T14:42:21
|
|
[vector] Speed up hb_vector_t<hb_vector_t<U>>::realloc_vector
Use in CFF subsetting.
|
|
b96eed02
|
2023-06-23T14:30:21
|
|
[vector] Speed up vector_t<vector_t<U>>::resize()
Used in CFF subsetting...
|
|
0935b327
|
2023-06-08T18:47:33
|
|
[vector] Speed up shrink_vector for trivial destructors
|
|
fea47dd3
|
2023-06-08T15:03:27
|
|
[vector] Fix vector error handling when allocation used to be 0
|
|
dbdeb264
|
2023-06-08T12:08:29
|
|
[vector] Keep allocated size when in error
|
|
0364c69e
|
2023-06-07T15:52:18
|
|
[iter] Add has_fast_len
Set iterators are not random_access, but have fast len().
|
|
f01ebe97
|
2023-06-05T21:38:37
|
|
[vector] Minor write more idiomatic
|
|
2b8c4313
|
2023-06-03T23:01:27
|
|
[vector] Oops!
|
|
054f966a
|
2023-06-03T22:52:16
|
|
[subset/cff1] Don't allocate memory for retaingid holes
40% speedup in BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10
benchmark.
|
|
5872bdf6
|
2023-05-26T11:41:54
|
|
[vector] Add copy-constructor for array_t's
|
|
1056590f
|
2023-04-27T10:41:36
|
|
[config] Add HB_OPTIMIZE_SIZE_VAL
|
|
70149885
|
2023-02-01T14:27:45
|
|
[font] Towards implementing emboldening
|
|
3e471bbc
|
2023-01-04T11:53:49
|
|
[vector] Better test
|
|
d8509061
|
2023-01-04T11:33:54
|
|
[vector] It's okay if shrinking fails
|
|
b6be4550
|
2023-01-02T18:05:43
|
|
[vector] Add resize_exact()
|
|
9afe5f97
|
2023-01-02T11:44:29
|
|
[vector] Fix leak
Discovered by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54767
|
|
55a7d817
|
2023-01-01T23:07:42
|
|
[vector] Allocate exact size in operator=
|
|
449910d4
|
2023-01-01T19:27:10
|
|
[vector] Allocate exact size in constructor
|
|
b8736076
|
2023-01-01T18:38:28
|
|
[vector] Support shrinking storage if exact size provided
Only do it if requested size is less than quarter of allocated size.
This has massive benefit during CFF subset preprocessing.
|
|
2eacc37e
|
2022-12-31T12:27:13
|
|
[vector] Add internal API for exact-size allocation
Use it from a couple of places.
|
|
8e9e94db
|
2022-12-01T19:40:21
|
|
Revert "[vector] Optimize grow_vector() for size"
This reverts commit 1dd9396c7a4c24fe9d578551fab735bdd699e52a.
Is faster indeed.
15% on SourceHanSans/10000 benchmark.
|
|
a66de336
|
2022-12-01T14:32:13
|
|
[vector] Minor use get_size() in as_bytes()
|
|
7129b794
|
2022-11-29T15:33:07
|
|
[open-type] Add faster range-based loop to array types
|
|
915c1a00
|
2022-11-26T14:48:57
|
|
[vector] Add remove_unordered
Saves 5% in NotoNastaliq/1000 subset benchmark.
|
|
4b8d8fbe
|
2022-11-26T14:31:15
|
|
[ot-map] Micro-optimize for size
|
|
e333223f
|
2022-11-25T14:23:57
|
|
[array] Optimize serializing copy()
|
|
7b197446
|
2022-11-25T13:28:53
|
|
[vector] Adjust for HB_OPTIMIZE_SIZE
|
|
d2a2f5bf
|
2022-11-25T12:44:02
|
|
[vector] Handroll copy
|
|
b0d26411
|
2022-11-22T10:20:11
|
|
[vector] Add "initialize" argument to resize()
|
|
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.
|
|
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.
|
|
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
|
|
f2b5db70
|
2022-11-16T21:22:43
|
|
[vector] Remove .sub_array ()
|
|
c7d57dcf
|
2022-11-16T21:21:31
|
|
[vector/array] Simplify qsort()
|
|
4e618557
|
2022-11-13T17:23:25
|
|
[vector] Don't subclass sorted vector from unsorted
Was doubling the size unnecessarily.
|
|
cddcb310
|
2022-07-12T13:15:38
|
|
[vector] Remove residual nullptr_t from when hashmap needed it
|
|
30ba9a39
|
2022-05-19T17:34:58
|
|
[vector] Add emplacing push implementation
|
|
a47b0aeb
|
2022-05-19T15:52:00
|
|
[vector] Fix remove() implementation
test-vector under valgrind happy now.
|
|
6544fc28
|
2022-05-19T15:28:09
|
|
[vector] Add further copy implementation
|
|
c19f1169
|
2022-05-19T15:27:52
|
|
[meta] Remove non-existing gcc4 trait implementation
|
|
fb77f48f
|
2022-05-19T15:02:10
|
|
[vector] Optimize vector copy
|
|
544ffb91
|
2022-05-19T14:50:12
|
|
[set] Adjust grow_vector condition
|
|
14a24d8e
|
2022-05-19T13:03:50
|
|
[vector] Make hb_vector_t hashable
|
|
c657c4e1
|
2022-05-10T10:00:06
|
|
[meta] fix type traits on gcc 4.9 #3526
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
|
|
76fc2771
|
2022-05-12T12:14:07
|
|
[vector] Remove explicit std::move
Was confusing compilers. Let them figure it out themselves.
Makes NotoNastaliqu subsetting/1000 benchmark more than twice faster:
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/1000 -0.5064 -0.5065 111 55 110 55
BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/1000 -0.5494 -0.5493 132 59 131 59
|
|
2e7f1ae4
|
2022-05-11T12:49:16
|
|
[subset] Use vector.allocated size instead of tracking buf_size
|
|
106388e7
|
2022-01-19T11:38:37
|
|
[vector] Merge sorted-vector into vector
Was easier than I thought!
Let's see what the bot gods think...
|
|
294d50ff
|
2022-01-19T11:32:14
|
|
[vector] Add sorted template argument
|
|
cd979978
|
2022-01-19T11:14:25
|
|
[vector] Remove old find() method
|
|
6ef83c2c
|
2022-01-18T13:08:34
|
|
[vector] Remove .fini_deep()
|
|
213e3f09
|
2022-01-18T09:39:46
|
|
[vector] Add TODO Emplace?
|
|
1198fb24
|
2022-01-16T06:29:35
|
|
[vector] Adjust construction criteria
|
|
c58bfa35
|
2022-01-15T18:06:03
|
|
[vector] Move semantics in vector remove()
|
|
5946e945
|
2022-01-15T18:00:18
|
|
[vector] Destruct in pop()
|
|
7171917b
|
2022-01-15T17:16:40
|
|
[vector] Construct items when enlarging
|
|
813eaba6
|
2022-01-14T13:09:21
|
|
[vector] Start adding destruction
Now we need to remove manual destruction, ouch!
|
|
65a22836
|
2022-01-14T12:55:48
|
|
[vector] Add XXX markers for remaining places that need work
|
|
63affc4e
|
2022-01-13T16:05:42
|
|
[vector] Move semantics when resizing
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
811f80a7
|
2021-11-02T00:14:34
|
|
[algs] Use std::move instead of hb_move()
|
|
3604f5f2
|
2021-11-01T22:37:42
|
|
[algs] Include <initializer_list>
|
|
6f74d80e
|
2021-11-01T21:49:32
|
|
[vector] Complete sorted_vector 5-methods
|
|
a28b5d03
|
2021-11-01T21:43:44
|
|
[vector] Add swap() friend to hb_sorted_vector_t
|
|
e97e7996
|
2021-11-01T21:34:46
|
|
Verbiage
|
|
b6c0b40f
|
2021-11-01T21:15:38
|
|
[vector] Use default constructor
|
|
f15858be
|
2021-11-01T20:26:07
|
|
[vector] Pre-allocate if iterator has random-access length
|
|
ee75e716
|
2021-11-01T20:18:49
|
|
[vector] Add initializer from iterable
|
|
18a078f9
|
2021-11-01T20:06:58
|
|
[vector] Implement move assignment using swap
|
|
eeda2c54
|
2021-11-01T18:36:57
|
|
[vector] Add initializer_list constructor & tests
|
|
c4846413
|
2021-11-01T18:48:24
|
|
Revert "[vector] Add initializer_list constructor & tests"
This reverts commit aa6182453b29b2d1cc974756fe0ae4220a846bf4.
|
|
aa618245
|
2021-11-01T18:36:57
|
|
[vector] Add initializer_list constructor & tests
|
|
8c055699
|
2021-11-01T17:59:17
|
|
[algs] Add hb_swap() ala, and using, std::swap()
Use it in vector.
Use ADL idiom.
|
|
5b882c42
|
2021-10-06T11:12:32
|
|
[repacker] performance optimizations for topological sorting.
- Presize the output sorted graph and write it once in the correct order to avoid needing to reverse.
- Swap the old/new graph vectors instead of copying.
- Use a boolean vector for tracking visited instead of a set.
|
|
03cd9c5c
|
2021-07-22T11:27:33
|
|
Align lfind() API to match bfind()
|
|
2337f0d0
|
2021-07-08T10:58:50
|
|
Internally use hb_malloc/.../hb_free instead of malloc/.../free
Redefining those stock names as macros was conflicting with gcc 10
headers.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
|
|
c5c13006
|
2021-03-31T11:23:46
|
|
[subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536
|
|
445efe8d
|
2020-06-28T20:59:01
|
|
m[vector] Recover vector from error in .reset()
|
|
08d57d9e
|
2020-06-28T13:13:25
|
|
Add hb_array_t::lfind
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
0558413f
|
2019-10-01T13:49:55
|
|
Minor, tweak spaces
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
aab8e084
|
2019-07-26T02:19:22
|
|
minor spacing fix (#1869)
|
|
d822e0a1
|
2019-05-15T16:30:08
|
|
[array] Adjust operator!=
See comments.
|
|
2fb3a832
|
2019-05-10T18:40:29
|
|
[vector] Simplify arrayZ
Was turned into function when we had static ones and wanted to be
move-safe... Not the case anymore.
|
|
5bffa9e3
|
2019-04-02T20:13:16
|
|
More
|
|
5b66b033
|
2019-04-02T19:27:02
|
|
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
|
|
8a8d45b9
|
2019-03-31T19:00:09
|
|
[iter] Adjust hb_copy() and use it
Untested.
|
|
b189bbc4
|
2019-03-30T19:41:48
|
|
Implement hashing of objects
Should be improved for hb_bytes_t.
|
|
7fd82283
|
2019-03-30T19:16:20
|
|
[serialize] Towards maintaining hashmap
|