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

Branch :


Log

Author Commit Date CI Message
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.
e0315b4a 2019-05-10 19:48:02 [meta] is_integer -> is_integral
971020ec 2019-05-08 16:31:52 Add sink support for hb_hashmap_t and a reverse call to hb_pair_t.
c9b287a8 2019-05-09 12:43:57 Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity()
27b20930 2019-05-08 15:32:57 [map] Return rvalues from keys()/values()
372c5b97 2019-05-08 15:28:39 [map] Fix bots Older compilers don't like calling iter() from return-type decltype() ../src/hb-map.hh:226:12: error: cannot call member function 'decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) hb_hashmap_t<K, V, kINVALID, vINVALID>::iter() const [with K = const hb_serialize_context_t::object_t*; V = unsigned int; K kINVALID = 0u; V vINVALID = 0u; decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) = hb_map_iter_t<hb_filter_iter_t<hb_array_t<hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t>, bool (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, const<anonymous struct>&, 0u>, hb_pair_t<const hb_serialize_context_t::object_t*, unsigned int> (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, 0u>]' without object + iter() ^ ../src/hb-meta.hh:58:41: note: in definition of macro 'HB_AUTO_RETURN' #define HB_AUTO_RETURN(E) -> decltype ((E)) { return (E); } ^
a3048271 2019-05-08 15:08:10 [map] Add .values() iterator
3c69505b 2019-05-08 15:05:10 [map] Fix iter
f5705d76 2019-05-08 14:46:55 Whitespace
b827181b 2019-05-08 13:51:11 [map] tweak test-iter.cc
492af0f1 2019-05-08 12:47:18 [map] add keys()
ba605128 2019-05-08 12:09:10 [map] add a test for iteration
183b8094 2019-05-08 11:40:31 [map] add iteration
bad16066 2019-05-08 12:11:52 [map] Make .has() optionally return value
240f57e5 2019-05-06 23:17:39 Rename hb_deref_pointer() to hb_deref()
22da1231 2019-04-24 10:53:16 [map] Fix TODO
0268db11 2019-04-24 10:43:40 [map] Use hb_invoke() with pointer-to-method
824fd342 2019-04-11 11:16:01 Rename a few macros
31c1a838 2019-04-02 20:17:27 [map] Protect more against pointer deref
5bffa9e3 2019-04-02 20:13:16 More
5b66b033 2019-04-02 19:27:02 [serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
10f06223 2019-03-30 18:44:01 [map] Shuffle fini code
a4329019 2019-03-30 17:51:26 [serialize] Add packed_map
38d57b9a 2019-03-30 16:38:06 [map] Add another TODO item
7fd940f8 2019-03-30 16:29:19 [map] Add TODO
ef33b5d1 2019-03-30 14:39:21 [map] Deref pointers before equality check
c98f51da 2019-03-30 14:30:22 [map] Templatize hb_map_t Template name is hb_hashmap_t<K,V>.
bdd5a9c4 2019-03-28 21:58:07 Add hb_hash() I don't like the hb_remove_reference() hack, but necessary.
a030ce4f 2019-03-28 21:26:50 Merge branch 'master' into iter
93739242 2019-02-20 13:23:12 minor edit
eebc21c8 2019-02-20 12:43:18 fix crash in hb_map_t::clear() in case called immediately after init()
d438e610 2019-01-28 16:34:04 [iter] Fix operator() impls
090fe56d 2019-01-25 15:34:03 Merge branch 'master' into iter
c1cbbb94 2019-01-20 19:47:52 Use static constexpr for large class constants
a7de144d 2019-01-09 08:39:25 Implement uniform map interface Coverage, ClassDef, hb_set_t, and hb_map_t implement.
bd1318b8 2019-01-20 19:47:52 Use static constexpr for large class constants
043b610f 2019-01-19 09:20:46 Fix sign compare warnings ../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: comparison of integers of different signs: 'const hb_codepoint_t' (aka 'const unsigned int') and 'hb_map_t::(anonymous enum at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' [-Wsign-compare] bool is_unused () const { return key == INVALID; }
9aebfb41 2018-12-18 13:22:17 [serialize] Streamline error propagation
e4120085 2018-12-17 21:31:01 Remove redundant void from C++ sources (#1486)
b2ebaa9a 2018-12-16 22:38:10 Remove redundant 'inline' from methods (#1483)
7ee5c523 2018-12-12 15:14:37 minor style fix, use void in methods on no argument
9e4138c8 2018-11-29 15:01:10 Convert misc "static const" constants to enum
b1862743 2018-10-29 23:21:14 [set/map] Fix uninitialized memory I keep forgetting that primitive types are NOT initialized during construction. :|
67a22f37 2018-10-29 17:37:41 [set/map/vector] Make constructable, but not copy or assignable Disable copy/assign on them, as they shouldn't. Make constructor / destructor call init_shallow/fini_shallow, and make those idempotent. So, these three can be constructed on stack now and no init/fini call is needed. As such, hb_auto_t<> is not needed anymore. I'll remove that separately.
114f66dd 2018-10-19 12:05:26 Fix hb_map_is_empty logic This needs reviewing
c77ae408 2018-08-25 22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.