|
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
|
|
e6b78003
|
2019-03-30T18:33:30
|
|
[vector] Add move semantics
|
|
4c4d3c3e
|
2019-03-30T18:30:50
|
|
[vector] Add some move and forwarding
|
|
357c7c61
|
2019-03-30T18:13:57
|
|
[vector] Add copy constructor and assignment operator
|
|
bed150bd
|
2019-03-30T17:26:35
|
|
[serialize] Start fleshing out object stack
|
|
58ad3579
|
2019-03-29T20:05:19
|
|
[vector] Accept all types in push(...)
Let assignment operator worry about conversion.
|
|
3f36c89f
|
2019-03-29T15:22:46
|
|
Inline explicit_operator macro
Now that we require C++11, no need to macro.
|
|
a30e1346
|
2019-01-28T16:39:01
|
|
[iter] Add operator << to set / vector
|
|
090fe56d
|
2019-01-25T15:34:03
|
|
Merge branch 'master' into iter
|
|
70a52d6b
|
2019-01-22T12:15:23
|
|
Convert all other enum class consts to static constexpr
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
a4ea0d36
|
2019-01-09T00:32:11
|
|
[iter] Change from const_iter_t/iter_t to iter_t/writer_t
|
|
815cde9f
|
2019-01-07T18:33:04
|
|
[iter] Use is_sorted_iterator
|
|
fd75d29f
|
2018-12-27T16:29:22
|
|
[iter] Streamline vector iterators
|
|
6dc4a1c9
|
2018-12-26T19:49:13
|
|
[iter] Remove const_iter
|
|
959bb58b
|
2018-12-26T18:54:15
|
|
[vector] Add iterator
|
|
54c0a173
|
2018-12-27T18:27:36
|
|
[vector] Fix warning
|
|
fa333e34
|
2018-12-27T17:56:22
|
|
[vector] Remove static_array
Was good idea, but with C++ types with constructor/destructor, was getting in
the way as compiler was destructing those items where it was not desired.
Since C++ does not allow zero-sized arrays, just remove it...
|
|
ab2258a4
|
2018-12-27T17:45:05
|
|
[vector] Use allocated = -1 to signify failure
|