|
7fa580bc
|
2022-05-12T13:05:32
|
|
[map] Fix map copy/move constructors to actually work
Ouch!
|
|
e30511a8
|
2022-01-14T16:20:31
|
|
[map] Correct previous commit, if (...) was reversed.
|
|
ff4e8c7e
|
2022-01-14T16:20:31
|
|
[map] Fix bad memory access if hb_map.fini() was called twice.
|
|
8a69e006
|
2022-01-13T16:17:34
|
|
[meta] Use std::addressof() instead of hb_addressof()
|
|
47afb3ef
|
2022-01-13T15:26:07
|
|
[meta] Replace hb_is_pointer with std::is_pointer
|
|
956e0a4d
|
2022-01-13T15:06:58
|
|
[map] Destruct objects
|
|
985b63b3
|
2022-01-13T13: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-13T12:44:48
|
|
[map] Remove constexpr invalid items
These were non-workable in the general case, eg std::string.
|
|
114046dc
|
2022-01-13T12:38:26
|
|
[map] Construct objects
|
|
ca4f56bd
|
2022-01-13T11:48:34
|
|
[map] Massage some more
Towards being able to store arbitrary types.
|
|
74811c50
|
2022-01-10T14:57:38
|
|
[map] Map == / != use correct types
|
|
ce7f19a2
|
2022-01-10T14:40:27
|
|
Revert "[map] Actually use k/v invalid types for declaration!"
This reverts commit 6f559346ac70fd188cb22d41f4b03ec227feee25.
Err. My bad.
|
|
6f559346
|
2022-01-10T14:29:36
|
|
[map] Actually use k/v invalid types for declaration!
|
|
394f7729
|
2021-11-19T11: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-02T17:56:11
|
|
[map] Add INVALID_KEY and INVALID_VALUE
|
|
59d8f6c8
|
2021-11-02T10:33:53
|
|
[map] Fix copy assignment operator
|
|
943921cf
|
2021-11-02T00:26:46
|
|
[meta] Use more std type_traits
|
|
811f80a7
|
2021-11-02T00:14:34
|
|
[algs] Use std::move instead of hb_move()
|
|
4c6fd7cd
|
2021-11-01T23:13:34
|
|
[map] Try moving items when resizing
|
|
a28ea8d7
|
2021-11-01T22:50:54
|
|
Simplify swap()
|
|
94158316
|
2021-11-01T22:47:26
|
|
[map] Add iterable constructor
|
|
a03b9b14
|
2021-11-01T22:45:11
|
|
[map] Add initializer_list and swap()
|
|
c30f6834
|
2021-11-01T22:29:14
|
|
[map] Add 5 methods
|
|
d3e09bf4
|
2021-08-24T10: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-10T12: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-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
|
|
a8f9f85a
|
2021-03-29T18:12:05
|
|
[map] Return success from ->set()
|
|
2fbd34f8
|
2020-06-28T22:41:09
|
|
m[set/map] Add operator bool()
Probably should use in places..
|
|
2d39031f
|
2020-06-28T20: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-08T18:17:40
|
|
Fix -Wambiguous-reversed-operator warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/2554
|
|
e541fb47
|
2020-06-21T09:49:48
|
|
minor, replace single hb_apply daggers with foreach
|
|
a7df5a7b
|
2020-04-23T10:50:02
|
|
[hashmap] Minor
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
be5cdcdf
|
2019-10-22T11: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-10T19:48:02
|
|
[meta] is_integer -> is_integral
|
|
971020ec
|
2019-05-08T16:31:52
|
|
Add sink support for hb_hashmap_t and a reverse call to hb_pair_t.
|
|
c9b287a8
|
2019-05-09T12:43:57
|
|
Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity()
|
|
27b20930
|
2019-05-08T15:32:57
|
|
[map] Return rvalues from keys()/values()
|
|
372c5b97
|
2019-05-08T15: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-08T15:08:10
|
|
[map] Add .values() iterator
|
|
3c69505b
|
2019-05-08T15:05:10
|
|
[map] Fix iter
|
|
f5705d76
|
2019-05-08T14:46:55
|
|
Whitespace
|
|
b827181b
|
2019-05-08T13:51:11
|
|
[map] tweak test-iter.cc
|
|
492af0f1
|
2019-05-08T12:47:18
|
|
[map] add keys()
|
|
ba605128
|
2019-05-08T12:09:10
|
|
[map] add a test for iteration
|
|
183b8094
|
2019-05-08T11:40:31
|
|
[map] add iteration
|
|
bad16066
|
2019-05-08T12:11:52
|
|
[map] Make .has() optionally return value
|
|
240f57e5
|
2019-05-06T23:17:39
|
|
Rename hb_deref_pointer() to hb_deref()
|
|
22da1231
|
2019-04-24T10:53:16
|
|
[map] Fix TODO
|
|
0268db11
|
2019-04-24T10:43:40
|
|
[map] Use hb_invoke() with pointer-to-method
|
|
824fd342
|
2019-04-11T11:16:01
|
|
Rename a few macros
|
|
31c1a838
|
2019-04-02T20:17:27
|
|
[map] Protect more against pointer deref
|
|
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
|
|
10f06223
|
2019-03-30T18:44:01
|
|
[map] Shuffle fini code
|
|
a4329019
|
2019-03-30T17:51:26
|
|
[serialize] Add packed_map
|
|
38d57b9a
|
2019-03-30T16:38:06
|
|
[map] Add another TODO item
|
|
7fd940f8
|
2019-03-30T16:29:19
|
|
[map] Add TODO
|
|
ef33b5d1
|
2019-03-30T14:39:21
|
|
[map] Deref pointers before equality check
|
|
c98f51da
|
2019-03-30T14:30:22
|
|
[map] Templatize hb_map_t
Template name is hb_hashmap_t<K,V>.
|
|
bdd5a9c4
|
2019-03-28T21:58:07
|
|
Add hb_hash()
I don't like the hb_remove_reference() hack, but necessary.
|
|
a030ce4f
|
2019-03-28T21:26:50
|
|
Merge branch 'master' into iter
|
|
93739242
|
2019-02-20T13:23:12
|
|
minor edit
|
|
eebc21c8
|
2019-02-20T12:43:18
|
|
fix crash in hb_map_t::clear()
in case called immediately after init()
|
|
d438e610
|
2019-01-28T16:34:04
|
|
[iter] Fix operator() impls
|
|
090fe56d
|
2019-01-25T15:34:03
|
|
Merge branch 'master' into iter
|
|
c1cbbb94
|
2019-01-20T19:47:52
|
|
Use static constexpr for large class constants
|
|
a7de144d
|
2019-01-09T08:39:25
|
|
Implement uniform map interface
Coverage, ClassDef, hb_set_t, and hb_map_t implement.
|
|
bd1318b8
|
2019-01-20T19:47:52
|
|
Use static constexpr for large class constants
|
|
043b610f
|
2019-01-19T09: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-18T13:22:17
|
|
[serialize] Streamline error propagation
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
7ee5c523
|
2018-12-12T15:14:37
|
|
minor style fix, use void in methods on no argument
|
|
9e4138c8
|
2018-11-29T15:01:10
|
|
Convert misc "static const" constants to enum
|
|
b1862743
|
2018-10-29T23:21:14
|
|
[set/map] Fix uninitialized memory
I keep forgetting that primitive types are NOT initialized during construction. :|
|
|
67a22f37
|
2018-10-29T17: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-19T12:05:26
|
|
Fix hb_map_is_empty logic
This needs reviewing
|
|
c77ae408
|
2018-08-25T22:36:36
|
|
Rename hb-*private.hh to hb-*.hh
Sorry for the noise, downstream custom builders. Please adjust.
|