Commit Graph

110 Commits

Author SHA1 Message Date
Behdad Esfahbod cddcb31065 [vector] Remove residual nullptr_t from when hashmap needed it 2022-07-12 13:15:38 -06:00
Behdad Esfahbod 30ba9a39e2 [vector] Add emplacing push implementation 2022-05-19 18:16:48 -06:00
Behdad Esfahbod a47b0aebf5 [vector] Fix remove() implementation
test-vector under valgrind happy now.
2022-05-19 15:52:16 -06:00
Behdad Esfahbod 6544fc284f [vector] Add further copy implementation 2022-05-19 15:43:15 -06:00
Behdad Esfahbod c19f116952 [meta] Remove non-existing gcc4 trait implementation 2022-05-19 15:43:15 -06:00
Behdad Esfahbod fb77f48ffd [vector] Optimize vector copy 2022-05-19 15:43:15 -06:00
Behdad Esfahbod 544ffb913e [set] Adjust grow_vector condition 2022-05-19 15:43:15 -06:00
Behdad Esfahbod 14a24d8e3f [vector] Make hb_vector_t hashable 2022-05-19 13:04:06 -06:00
Thomas Devoogdt c657c4e1f8 [meta] fix type traits on gcc 4.9 #3526
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
2022-05-13 11:26:12 -06:00
Behdad Esfahbod 76fc27713f [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
2022-05-12 12:14:07 -06:00
Behdad Esfahbod 2e7f1ae48f [subset] Use vector.allocated size instead of tracking buf_size 2022-05-11 12:52:27 -06:00
Behdad Esfahbod 106388e766 [vector] Merge sorted-vector into vector
Was easier than I thought!

Let's see what the bot gods think...
2022-01-19 11:38:37 -07:00
Behdad Esfahbod 294d50ff35 [vector] Add sorted template argument 2022-01-19 11:32:14 -07:00
Behdad Esfahbod cd9799784c [vector] Remove old find() method 2022-01-19 11:14:25 -07:00
Behdad Esfahbod 6ef83c2c31 [vector] Remove .fini_deep() 2022-01-18 13:08:34 -07:00
Behdad Esfahbod 213e3f09b1 [vector] Add TODO Emplace? 2022-01-18 11:53:52 -07:00
Behdad Esfahbod 1198fb2468 [vector] Adjust construction criteria 2022-01-17 16:46:45 -07:00
Behdad Esfahbod c58bfa35fb [vector] Move semantics in vector remove() 2022-01-17 16:46:45 -07:00
Behdad Esfahbod 5946e945d5 [vector] Destruct in pop() 2022-01-17 16:46:45 -07:00
Behdad Esfahbod 7171917b52 [vector] Construct items when enlarging 2022-01-17 16:46:45 -07:00
Behdad Esfahbod 813eaba6ea [vector] Start adding destruction
Now we need to remove manual destruction, ouch!
2022-01-17 16:46:45 -07:00
Behdad Esfahbod 65a22836f8 [vector] Add XXX markers for remaining places that need work 2022-01-17 16:46:45 -07:00
Behdad Esfahbod 63affc4eae [vector] Move semantics when resizing 2022-01-15 12:24:20 -08:00
Behdad Esfahbod 6d555ce82e [meta] Use std::forward instead of hb_forward() 2021-11-02 00:18:22 -06:00
Behdad Esfahbod 811f80a701 [algs] Use std::move instead of hb_move() 2021-11-02 00:17:54 -06:00
Behdad Esfahbod 3604f5f248 [algs] Include <initializer_list> 2021-11-01 22:37:42 -06:00
Behdad Esfahbod 6f74d80ed1 [vector] Complete sorted_vector 5-methods 2021-11-01 21:49:32 -06:00
Behdad Esfahbod a28b5d03b5 [vector] Add swap() friend to hb_sorted_vector_t 2021-11-01 21:43:44 -06:00
Behdad Esfahbod e97e79967e Verbiage 2021-11-01 21:34:46 -06:00
Behdad Esfahbod b6c0b40fc2 [vector] Use default constructor 2021-11-01 21:15:38 -06:00
Behdad Esfahbod f15858be5f [vector] Pre-allocate if iterator has random-access length 2021-11-01 20:26:07 -06:00
Behdad Esfahbod ee75e716c1 [vector] Add initializer from iterable 2021-11-01 20:19:57 -06:00
Behdad Esfahbod 18a078f968 [vector] Implement move assignment using swap 2021-11-01 20:06:58 -06:00
Behdad Esfahbod eeda2c549d [vector] Add initializer_list constructor & tests 2021-11-01 18:50:11 -06:00
Behdad Esfahbod c484641304 Revert "[vector] Add initializer_list constructor & tests"
This reverts commit aa6182453b.
2021-11-01 18:48:24 -06:00
Behdad Esfahbod aa6182453b [vector] Add initializer_list constructor & tests 2021-11-01 18:36:57 -06:00
Behdad Esfahbod 8c05569930 [algs] Add hb_swap() ala, and using, std::swap()
Use it in vector.

Use ADL idiom.
2021-11-01 17:59:17 -06:00
Garret Rieger 5b882c420a [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.
2021-10-06 11:43:47 -07:00
Behdad Esfahbod 03cd9c5cba Align lfind() API to match bfind() 2021-07-22 11:38:27 -07:00
Behdad Esfahbod 2337f0d047 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
2021-07-08 10:54:09 -07:00
Garret Rieger c5c13006a1 [subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536 2021-03-31 12:37:45 -06:00
Behdad Esfahbod 445efe8d04 m[vector] Recover vector from error in .reset() 2021-02-19 18:40:48 -07:00
Ebrahim Byagowi 08d57d9eca
Add hb_array_t::lfind 2020-06-28 13:13:25 +04:30
Ebrahim Byagowi 2dda6dd744 minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
2020-04-20 16:18:29 +04:30
Ebrahim Byagowi 0558413f27 Minor, tweak spaces 2019-10-01 13:50:11 +03:30
Ebrahim Byagowi a0b4ac4dce Turn 8 spaces to tab across the project
According to the current code style of the project
2019-08-27 02:40:41 +04:30
Ebrahim Byagowi aab8e08487
minor spacing fix (#1869) 2019-07-26 02:19:22 +04:30
Behdad Esfahbod d822e0a16f [array] Adjust operator!=
See comments.
2019-05-15 16:30:08 -07:00
Behdad Esfahbod 2fb3a8327a [vector] Simplify arrayZ
Was turned into function when we had static ones and wanted to be
move-safe...  Not the case anymore.
2019-05-10 18:43:48 -07:00
Behdad Esfahbod 5bffa9e375 More 2019-04-02 20:13:16 -07:00