|
bcd59b51
|
2022-07-20T15:57:09
|
|
[set/map] Remove init_shallow/fini_shallow()
|
|
e1b5f2f8
|
2022-07-20T15:03:20
|
|
[object] Call destructor in hb_object_destroy()
|
|
9ea4ab60
|
2022-07-20T14:57:32
|
|
[object] Call constructor
|
|
61c04384
|
2022-07-20T14:43:58
|
|
[map] Allow geting non-const value pointer out with has()
|
|
00cfc5c1
|
2022-07-20T14:38:28
|
|
[map] Don't set out value in has() if not found
|
|
485f0432
|
2022-07-20T14:34:55
|
|
[map] Enable using hashmap with unique_ptr
|
|
2a4773e4
|
2022-06-21T19: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-12T13:19:31
|
|
[hashmap] Add keys_ref() and values_ref()
|
|
5da341ce
|
2022-06-27T13:29:22
|
|
[map] Another try at hiding minus1
To fix https://github.com/harfbuzz/harfbuzz/issues/3684
|
|
c72d3104
|
2022-06-27T13:31:05
|
|
[map] Return const reference in operator[]
|
|
69d53f3e
|
2022-06-27T13:17:10
|
|
[map] Make default_value() inline
See if it make fix https://github.com/harfbuzz/harfbuzz/issues/3684
|
|
88f00ecb
|
2022-06-03T01:30:27
|
|
[map] Fix iter_ref () and test it
|
|
25f57230
|
2022-06-03T01:11:22
|
|
[map] Return references from new iter_ref()
|
|
997d9cc4
|
2022-06-02T18:04:12
|
|
[map] Make unique_ptr hashable
|
|
8bb2a332
|
2022-06-02T15:18:23
|
|
[map] Remove unneeded assignment
|
|
e9407a2b
|
2022-06-02T11:29:44
|
|
Use shared_ptr<hb_set_t> in one place
See if valgrind is happy...
|
|
b9230c54
|
2022-06-02T11:18:38
|
|
[map] Fix has()
|
|
97ea10a6
|
2022-06-02T11:14:17
|
|
Remove old nullptr_t hacks
Were used for hashmap before.
|
|
3f78a71c
|
2022-06-02T11:11:35
|
|
[map] Finally! Just can usd hb_hashmap_t<obj_t, obj_t>
Yay!
|
|
0ccab339
|
2022-06-02T10:43:36
|
|
[map] Remove invalid-key template arguments since unused
|
|
3f6a8f69
|
2022-06-02T10:36:07
|
|
[map] Remove invalid-key special-casing
Can override invalid-key value now.
|
|
5328b73f
|
2022-06-02T10:32:56
|
|
[map] Reduce map item size again
|
|
4f58ae60
|
2022-06-02T10:13:55
|
|
[map] Keep is_used, is_tombstone as booleans
|
|
ea2dd54b
|
2022-05-26T11: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-26T11:20:27
|
|
[map] Speed up map's own hash()
|
|
de33ef61
|
2022-05-26T11:07:21
|
|
[map] Add TODO item
|
|
b99efa6c
|
2022-05-28T05:16:34
|
|
[map] Minor: use const reference in has()
|
|
2fdb7616
|
2022-05-19T16:00:43
|
|
[map Further adjust hash function
|
|
01fc90b6
|
2022-05-19T16:00:06
|
|
[map] Adjust hash function
|
|
58f848da
|
2022-05-19T15:42:54
|
|
[set/map] Adjust hash function return type
|
|
561e02fe
|
2022-05-19T13:38:52
|
|
[map] Make hb_map_t hashable
|
|
ad176990
|
2022-05-19T13:36:12
|
|
[map] Add is_equal() / towards making hb_map_t hashable
New API:
+ hb_map_is_equal()
|
|
f82ee17a
|
2022-05-18T12:17:43
|
|
[map] Pre-size map in constructor if we can
|
|
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
|