kc3-lang/harfbuzz/src/hb-map.hh

Branch :


Log

Author Commit Date CI Message
5e713e99 2022-12-05 23:57:57 Revert "[map] Speed up is_real()" This reverts commit f5307c3ba8401fbaf9008705d7f8dfa7d28e944c. Found to slow down the benchmarks in some cases.
f5307c3b 2022-12-04 11:54:16 [map] Speed up is_real()
dbbb8e80 2022-12-04 11:13:39 Revert "[map] Add hb_map_filter_invalid" This reverts commit 8d7e92111786b21906157127c24b72b1e444e6e7. Surprisingly this slowed NotoNastaliqUrdu benchmark down by a couple percent instead of speeding it up.
8d7e9211 2022-12-04 11:01:45 [map] Add hb_map_filter_invalid Use it in one place.
d2a2670e 2022-11-28 19:42:27 [iter] Simplify has() interface implementations
86a763c6 2022-11-21 20:53:44 [map] Make keys moveable
cf20d2ec 2022-11-21 20:46:01 [map] Take const key
3d1c76f7 2022-11-21 19:40:32 [serializer] Don't hash objects twice
3ff8abf2 2022-11-18 19: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.
a3a218ed 2022-11-18 19:24:41 [map] Add a couple more sink interfaces
f657ef7e 2022-11-18 19:17:03 [map] Allow std::move-ing keys into the map
a1768ad8 2022-11-18 19:08:34 [map] Fix use of !=
a9c6a20b 2022-11-18 18:29:12 [map] Support moving value in sink interface
3ead9863 2022-11-18 16:43:47 [map] Add size()
42db8be1 2022-11-18 16:41:50 [map] Minor remove if condition
4ec70698 2022-11-18 16: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-18 16:33:04 [map] Optimize copy resizing logic
f1d71687 2022-11-18 16:31:27 [map] Change bucket_for_hash() to item_for_hash()
d012f9a9 2022-11-18 16:29:06 [map] Change bucket_for() to item_for()
81a57300 2022-11-17 16:59:36 [map] Optimize storage
ae080bf2 2022-11-17 16:34:58 [map] Initialize key and value explicitly If they are of int time they won't be initialized otherwise.
ff0bb748 2022-11-17 16:17:37 [map] Call item_t constructor/destructor directly
5c887159 2022-11-17 16:14:16 [map] Add item_t.destruct()
7f830408 2022-11-17 16:10:37 [map] Simplify (de)construction of item_t
99103bd9 2022-11-17 15:57:06 [map] Destruct objects when clearing
e93c01c3 2022-11-17 15:50:00 [map] Rename item clear() to construct()
89637746 2022-11-17 15:25:45 [map] Don't resize map if not necessary
7595fa2d 2022-11-17 15:19:29 [map] Fix copy-assignment operator Ouch!
41f4bdac 2022-11-17 15:16:00 [map] Fix resize during copy-construction/assignment
7bd10172 2022-11-17 15:01:55 [map] Minor use hb_iter instead of hb_array
238fc147 2022-11-17 14:58:50 [map] Simplify iterators
410c14bf 2022-11-17 14:53:00 [map] Fix equality Ouch!
dbb7f47b 2022-11-03 11:55:41 fix bug in hb_hashmap_t has() interface It was not working when the value type is hb_bytes_t because hb_array_t overloaded operator &
bcd59b51 2022-07-20 15:57:09 [set/map] Remove init_shallow/fini_shallow()
e1b5f2f8 2022-07-20 15:03:20 [object] Call destructor in hb_object_destroy()
9ea4ab60 2022-07-20 14:57:32 [object] Call constructor
61c04384 2022-07-20 14:43:58 [map] Allow geting non-const value pointer out with has()
00cfc5c1 2022-07-20 14:38:28 [map] Don't set out value in has() if not found
485f0432 2022-07-20 14:34:55 [map] Enable using hashmap with unique_ptr
2a4773e4 2022-06-21 19:29:52 add option "--instance", store axes_location in subset_plan and drop all variation tables when all axes are pinned at default
d8f9d517 2022-07-12 13:19:31 [hashmap] Add keys_ref() and values_ref()
5da341ce 2022-06-27 13:29:22 [map] Another try at hiding minus1 To fix https://github.com/harfbuzz/harfbuzz/issues/3684
c72d3104 2022-06-27 13:31:05 [map] Return const reference in operator[]
69d53f3e 2022-06-27 13:17:10 [map] Make default_value() inline See if it make fix https://github.com/harfbuzz/harfbuzz/issues/3684
88f00ecb 2022-06-03 01:30:27 [map] Fix iter_ref () and test it
25f57230 2022-06-03 01:11:22 [map] Return references from new iter_ref()
997d9cc4 2022-06-02 18:04:12 [map] Make unique_ptr hashable
8bb2a332 2022-06-02 15:18:23 [map] Remove unneeded assignment
e9407a2b 2022-06-02 11:29:44 Use shared_ptr<hb_set_t> in one place See if valgrind is happy...
b9230c54 2022-06-02 11:18:38 [map] Fix has()
97ea10a6 2022-06-02 11:14:17 Remove old nullptr_t hacks Were used for hashmap before.
3f78a71c 2022-06-02 11:11:35 [map] Finally! Just can usd hb_hashmap_t<obj_t, obj_t> Yay!
0ccab339 2022-06-02 10:43:36 [map] Remove invalid-key template arguments since unused
3f6a8f69 2022-06-02 10:36:07 [map] Remove invalid-key special-casing Can override invalid-key value now.
5328b73f 2022-06-02 10:32:56 [map] Reduce map item size again
4f58ae60 2022-06-02 10:13:55 [map] Keep is_used, is_tombstone as booleans
ea2dd54b 2022-05-26 11:31:28 [map] Place item hash between key and value, not after them This way if only one of key and value is 64bit (eg. pointer), and other is 32bit, the whole item will fit in 128bit, whereas before it would have been bumped up to 196 if only value was 64bit (a common use-case for us.)
cbcdf442 2022-05-26 11:20:27 [map] Speed up map's own hash()
de33ef61 2022-05-26 11:07:21 [map] Add TODO item
b99efa6c 2022-05-28 05:16:34 [map] Minor: use const reference in has()
2fdb7616 2022-05-19 16:00:43 [map Further adjust hash function
01fc90b6 2022-05-19 16:00:06 [map] Adjust hash function
58f848da 2022-05-19 15:42:54 [set/map] Adjust hash function return type
561e02fe 2022-05-19 13:38:52 [map] Make hb_map_t hashable
ad176990 2022-05-19 13:36:12 [map] Add is_equal() / towards making hb_map_t hashable New API: + hb_map_is_equal()
f82ee17a 2022-05-18 12:17:43 [map] Pre-size map in constructor if we can
7fa580bc 2022-05-12 13:05:32 [map] Fix map copy/move constructors to actually work Ouch!
e30511a8 2022-01-14 16:20:31 [map] Correct previous commit, if (...) was reversed.
ff4e8c7e 2022-01-14 16:20:31 [map] Fix bad memory access if hb_map.fini() was called twice.
8a69e006 2022-01-13 16:17:34 [meta] Use std::addressof() instead of hb_addressof()
47afb3ef 2022-01-13 15:26:07 [meta] Replace hb_is_pointer with std::is_pointer
956e0a4d 2022-01-13 15:06:58 [map] Destruct objects
985b63b3 2022-01-13 13:33:07 [map] Allow invalid items to be pointer to static object By derefencing them when necessary. Also, we do not rely on trivially-copyable, so remove that assertion.
5a91db11 2022-01-13 12:44:48 [map] Remove constexpr invalid items These were non-workable in the general case, eg std::string.
114046dc 2022-01-13 12:38:26 [map] Construct objects
ca4f56bd 2022-01-13 11:48:34 [map] Massage some more Towards being able to store arbitrary types.
74811c50 2022-01-10 14:57:38 [map] Map == / != use correct types
ce7f19a2 2022-01-10 14:40:27 Revert "[map] Actually use k/v invalid types for declaration!" This reverts commit 6f559346ac70fd188cb22d41f4b03ec227feee25. Err. My bad.
6f559346 2022-01-10 14:29:36 [map] Actually use k/v invalid types for declaration!
394f7729 2021-11-19 11:49:23 [map] Allow storing classes in the hashmap Fixes https://github.com/harfbuzz/harfbuzz/issues/3293 The trick was to change the type of the invalid key/value to be non-class.
b1cd0dce 2021-11-02 17:56:11 [map] Add INVALID_KEY and INVALID_VALUE
59d8f6c8 2021-11-02 10:33:53 [map] Fix copy assignment operator
943921cf 2021-11-02 00:26:46 [meta] Use more std type_traits
811f80a7 2021-11-02 00:14:34 [algs] Use std::move instead of hb_move()
4c6fd7cd 2021-11-01 23:13:34 [map] Try moving items when resizing
a28ea8d7 2021-11-01 22:50:54 Simplify swap()
94158316 2021-11-01 22:47:26 [map] Add iterable constructor
a03b9b14 2021-11-01 22:45:11 [map] Add initializer_list and swap()
c30f6834 2021-11-01 22:29:14 [map] Add 5 methods
d3e09bf4 2021-08-24 10:31:49 [set] Make all operators null-safe again Changed my mind. Also for hb_map_clear(). Part of https://github.com/harfbuzz/harfbuzz/pull/3162
c08f1b89 2021-08-10 12:29:32 [map] fix incorrect population count in hash map. If the same key was set twice the population was being incorrectly incremented.
2337f0d0 2021-07-08 10: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
a8f9f85a 2021-03-29 18:12:05 [map] Return success from ->set()
2fbd34f8 2020-06-28 22:41:09 m[set/map] Add operator bool() Probably should use in places..
2d39031f 2020-06-28 20:48:48 [buffer/set/map] Move immutable check only to C API boundary The immutable objects are a concept only enforced by the C API. So move checks only to that region. This does assume that the rest of the code is careful not getting into these internal methods on immutable objects, which something we do, but have no way of enforcing (currently). .
6a45df0a 2020-07-08 18:17:40 Fix -Wambiguous-reversed-operator warning Fixes https://github.com/harfbuzz/harfbuzz/issues/2554
e541fb47 2020-06-21 09:49:48 minor, replace single hb_apply daggers with foreach
a7df5a7b 2020-04-23 10:50:02 [hashmap] Minor
2dda6dd7 2020-04-20 14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
be5cdcdf 2019-10-22 11:55:04 Store the hash value of a key in item_t in hb_map to reduce the number of hash computations.