src/hb-vector.hh


Log

Author Commit Date CI Message
Behdad Esfahbod 3e471bbc 2023-01-04T11:53:49 [vector] Better test
Behdad Esfahbod d8509061 2023-01-04T11:33:54 [vector] It's okay if shrinking fails
Behdad Esfahbod b6be4550 2023-01-02T18:05:43 [vector] Add resize_exact()
Behdad Esfahbod 9afe5f97 2023-01-02T11:44:29 [vector] Fix leak Discovered by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54767
Behdad Esfahbod 55a7d817 2023-01-01T23:07:42 [vector] Allocate exact size in operator=
Behdad Esfahbod 449910d4 2023-01-01T19:27:10 [vector] Allocate exact size in constructor
Behdad Esfahbod 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.
Behdad Esfahbod 2eacc37e 2022-12-31T12:27:13 [vector] Add internal API for exact-size allocation Use it from a couple of places.
Behdad Esfahbod 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.
Behdad Esfahbod a66de336 2022-12-01T14:32:13 [vector] Minor use get_size() in as_bytes()
Behdad Esfahbod 7129b794 2022-11-29T15:33:07 [open-type] Add faster range-based loop to array types
Behdad Esfahbod 915c1a00 2022-11-26T14:48:57 [vector] Add remove_unordered Saves 5% in NotoNastaliq/1000 subset benchmark.
Behdad Esfahbod 4b8d8fbe 2022-11-26T14:31:15 [ot-map] Micro-optimize for size
Behdad Esfahbod e333223f 2022-11-25T14:23:57 [array] Optimize serializing copy()
Behdad Esfahbod 7b197446 2022-11-25T13:28:53 [vector] Adjust for HB_OPTIMIZE_SIZE
Behdad Esfahbod d2a2f5bf 2022-11-25T12:44:02 [vector] Handroll copy
Behdad Esfahbod b0d26411 2022-11-22T10:20:11 [vector] Add "initialize" argument to resize()
Behdad Esfahbod 7cc79a8a 2022-11-21T12:09:24 [vector] Adjust comment
Behdad Esfahbod e82a3c69 2022-11-21T12:00:10 [array/vector] Optimize range-based for-loop Avoid bounds-checking.
Behdad Esfahbod 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.
Behdad Esfahbod bef5a1c8 2022-11-18T17:22:17 [vector] Comment
Behdad Esfahbod 69b41f92 2022-11-18T17:04:34 [vector] Simplify shift_down_vector() Compiler is smarter than I am.
Behdad Esfahbod 1dd9396c 2022-11-18T17:01:14 [vector] Optimize grow_vector() for size Again, compiler is smarter than I am.
Behdad Esfahbod d36f6881 2022-11-18T17:00:07 [vector] Optimize shrink_vector for size Compiler is smarter than I am.
Behdad Esfahbod bc8eded2 2022-11-18T16:51:24 [vector] Remove a for loop
Behdad Esfahbod afd9a58b 2022-11-18T16:46:01 [vector] Save a couple hb_iter() invocations
Behdad Esfahbod f2b5db70 2022-11-16T21:22:43 [vector] Remove .sub_array ()
Behdad Esfahbod c7d57dcf 2022-11-16T21:21:31 [vector/array] Simplify qsort()
Behdad Esfahbod 4e618557 2022-11-13T17:23:25 [vector] Don't subclass sorted vector from unsorted Was doubling the size unnecessarily.
Behdad Esfahbod cddcb310 2022-07-12T13:15:38 [vector] Remove residual nullptr_t from when hashmap needed it
Behdad Esfahbod 30ba9a39 2022-05-19T17:34:58 [vector] Add emplacing push implementation
Behdad Esfahbod a47b0aeb 2022-05-19T15:52:00 [vector] Fix remove() implementation test-vector under valgrind happy now.
Behdad Esfahbod 6544fc28 2022-05-19T15:28:09 [vector] Add further copy implementation
Behdad Esfahbod c19f1169 2022-05-19T15:27:52 [meta] Remove non-existing gcc4 trait implementation
Behdad Esfahbod fb77f48f 2022-05-19T15:02:10 [vector] Optimize vector copy
Behdad Esfahbod 544ffb91 2022-05-19T14:50:12 [set] Adjust grow_vector condition
Behdad Esfahbod 14a24d8e 2022-05-19T13:03:50 [vector] Make hb_vector_t hashable
Thomas Devoogdt c657c4e1 2022-05-10T10:00:06 [meta] fix type traits on gcc 4.9 #3526 Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
Behdad Esfahbod 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
Behdad Esfahbod 2e7f1ae4 2022-05-11T12:49:16 [subset] Use vector.allocated size instead of tracking buf_size
Behdad Esfahbod 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...
Behdad Esfahbod 294d50ff 2022-01-19T11:32:14 [vector] Add sorted template argument
Behdad Esfahbod cd979978 2022-01-19T11:14:25 [vector] Remove old find() method
Behdad Esfahbod 6ef83c2c 2022-01-18T13:08:34 [vector] Remove .fini_deep()
Behdad Esfahbod 213e3f09 2022-01-18T09:39:46 [vector] Add TODO Emplace?
Behdad Esfahbod 1198fb24 2022-01-16T06:29:35 [vector] Adjust construction criteria
Behdad Esfahbod c58bfa35 2022-01-15T18:06:03 [vector] Move semantics in vector remove()
Behdad Esfahbod 5946e945 2022-01-15T18:00:18 [vector] Destruct in pop()
Behdad Esfahbod 7171917b 2022-01-15T17:16:40 [vector] Construct items when enlarging
Behdad Esfahbod 813eaba6 2022-01-14T13:09:21 [vector] Start adding destruction Now we need to remove manual destruction, ouch!
Behdad Esfahbod 65a22836 2022-01-14T12:55:48 [vector] Add XXX markers for remaining places that need work
Behdad Esfahbod 63affc4e 2022-01-13T16:05:42 [vector] Move semantics when resizing
Behdad Esfahbod 6d555ce8 2021-11-02T00:18:22 [meta] Use std::forward instead of hb_forward()
Behdad Esfahbod 811f80a7 2021-11-02T00:14:34 [algs] Use std::move instead of hb_move()
Behdad Esfahbod 3604f5f2 2021-11-01T22:37:42 [algs] Include <initializer_list>
Behdad Esfahbod 6f74d80e 2021-11-01T21:49:32 [vector] Complete sorted_vector 5-methods
Behdad Esfahbod a28b5d03 2021-11-01T21:43:44 [vector] Add swap() friend to hb_sorted_vector_t
Behdad Esfahbod e97e7996 2021-11-01T21:34:46 Verbiage
Behdad Esfahbod b6c0b40f 2021-11-01T21:15:38 [vector] Use default constructor
Behdad Esfahbod f15858be 2021-11-01T20:26:07 [vector] Pre-allocate if iterator has random-access length
Behdad Esfahbod ee75e716 2021-11-01T20:18:49 [vector] Add initializer from iterable
Behdad Esfahbod 18a078f9 2021-11-01T20:06:58 [vector] Implement move assignment using swap
Behdad Esfahbod eeda2c54 2021-11-01T18:36:57 [vector] Add initializer_list constructor & tests
Behdad Esfahbod c4846413 2021-11-01T18:48:24 Revert "[vector] Add initializer_list constructor & tests" This reverts commit aa6182453b29b2d1cc974756fe0ae4220a846bf4.
Behdad Esfahbod aa618245 2021-11-01T18:36:57 [vector] Add initializer_list constructor & tests
Behdad Esfahbod 8c055699 2021-11-01T17:59:17 [algs] Add hb_swap() ala, and using, std::swap() Use it in vector. Use ADL idiom.
Garret Rieger 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.
Behdad Esfahbod 03cd9c5c 2021-07-22T11:27:33 Align lfind() API to match bfind()
Behdad Esfahbod 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
Garret Rieger c5c13006 2021-03-31T11:23:46 [subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536
Behdad Esfahbod 445efe8d 2020-06-28T20:59:01 m[vector] Recover vector from error in .reset()
Ebrahim Byagowi 08d57d9e 2020-06-28T13:13:25 Add hb_array_t::lfind
Ebrahim Byagowi 2dda6dd7 2020-04-20T14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
Ebrahim Byagowi 0558413f 2019-10-01T13:49:55 Minor, tweak spaces
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Ebrahim Byagowi aab8e084 2019-07-26T02:19:22 minor spacing fix (#1869)
Behdad Esfahbod d822e0a1 2019-05-15T16:30:08 [array] Adjust operator!= See comments.
Behdad Esfahbod 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.
Behdad Esfahbod 5bffa9e3 2019-04-02T20:13:16 More
Behdad Esfahbod 5b66b033 2019-04-02T19:27:02 [serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
Behdad Esfahbod 8a8d45b9 2019-03-31T19:00:09 [iter] Adjust hb_copy() and use it Untested.
Behdad Esfahbod b189bbc4 2019-03-30T19:41:48 Implement hashing of objects Should be improved for hb_bytes_t.
Behdad Esfahbod 7fd82283 2019-03-30T19:16:20 [serialize] Towards maintaining hashmap
Behdad Esfahbod e6b78003 2019-03-30T18:33:30 [vector] Add move semantics
Behdad Esfahbod 4c4d3c3e 2019-03-30T18:30:50 [vector] Add some move and forwarding
Behdad Esfahbod 357c7c61 2019-03-30T18:13:57 [vector] Add copy constructor and assignment operator
Behdad Esfahbod bed150bd 2019-03-30T17:26:35 [serialize] Start fleshing out object stack
Behdad Esfahbod 58ad3579 2019-03-29T20:05:19 [vector] Accept all types in push(...) Let assignment operator worry about conversion.
Behdad Esfahbod 3f36c89f 2019-03-29T15:22:46 Inline explicit_operator macro Now that we require C++11, no need to macro.
Behdad Esfahbod a30e1346 2019-01-28T16:39:01 [iter] Add operator << to set / vector
Behdad Esfahbod 090fe56d 2019-01-25T15:34:03 Merge branch 'master' into iter
Behdad Esfahbod 70a52d6b 2019-01-22T12:15:23 Convert all other enum class consts to static constexpr Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod a4ea0d36 2019-01-09T00:32:11 [iter] Change from const_iter_t/iter_t to iter_t/writer_t
Behdad Esfahbod 815cde9f 2019-01-07T18:33:04 [iter] Use is_sorted_iterator
Behdad Esfahbod fd75d29f 2018-12-27T16:29:22 [iter] Streamline vector iterators
Behdad Esfahbod 6dc4a1c9 2018-12-26T19:49:13 [iter] Remove const_iter
Behdad Esfahbod 959bb58b 2018-12-26T18:54:15 [vector] Add iterator
Behdad Esfahbod 54c0a173 2018-12-27T18:27:36 [vector] Fix warning
Behdad Esfahbod 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...
Behdad Esfahbod ab2258a4 2018-12-27T17:45:05 [vector] Use allocated = -1 to signify failure