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

Branch :


Log

Author Commit Date CI Message
d2a2670e 2022-11-28 19:42:27 [iter] Simplify has() interface implementations
bcd59b51 2022-07-20 15:57:09 [set/map] Remove init_shallow/fini_shallow()
97ea10a6 2022-06-02 11:14:17 Remove old nullptr_t hacks Were used for hashmap before.
58f848da 2022-05-19 15:42:54 [set/map] Adjust hash function return type
0623aa59 2022-05-19 14:12:42 [benchmark-set] Add benchmark for set copy
124f9aeb 2022-05-19 12:58:02 [set] Make hb_set_t hashable
1f578b5a 2022-05-18 15:24:40 [set] Add pre-allocation internal API
7fa580bc 2022-05-12 13:05:32 [map] Fix map copy/move constructors to actually work Ouch!
a09dd87c 2022-05-12 12:58:07 [set] Fix set copy/move constructors to actually work Ouch!
c81198b5 2022-05-12 11:58:37 [set] Tweak move operators a bit Should be equivalent.
0a388785 2022-03-25 09:42:36 [set] Minor touch-up on the previous commit
01829882 2022-03-25 08:36:44 [set] Add call to export set contents to an array. (#3500) [set] Add hb_set_next_many.
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.
811f80a7 2021-11-02 00:14:34 [algs] Use std::move instead of hb_move()
3604f5f2 2021-11-01 22:37:42 [algs] Include <initializer_list>
e97e7996 2021-11-01 21:34:46 Verbiage
34fa5e29 2021-11-01 21:25:03 [set] More default operators
dcd18da6 2021-11-01 20:55:30 [set] Add standard the 5 standard methods & tests
93ac700d 2021-08-29 10:32:40 [set] Add copy-constructor/assignment again
f0c3804f 2021-08-17 15:37:19 [set] Add hb_bit_set_invertible_t and resurrect hb_set_invert() Implementation is NOT complete yet.
b5cdbdc0 2021-08-17 10:53:08 [set] Turn hb_set_t into instance of template taking implementation t
fad452bf 2021-08-16 20:48:24 [set] Move main functionality into hb_bit_set_t To add inversion on top in hb_invertible_set_t and use that as hb_set_t.
f245dc4d 2021-08-15 12:40:36 [set] Whitespace
9b390f8c 2021-08-15 12:34:55 [set] Move page_t into hb-bit-page.hh
0c3e02ee 2021-08-15 12:10:13 [set] Add "inverted" to page_t::is_empty()
9bd64fa0 2021-08-15 11:42:16 [set] Add "inverted" to page_t::next/prev()
c88e7ec9 2021-08-15 11:39:31 [set] Add page_t::elt_maybe_invert()
9449cfee 2021-08-15 11:35:33 [set] Simplify page_t::next/prev()
4394ee1f 2021-08-15 11:28:09 [set] Add inverted to page_t::get_min/max()
0dcd9b15 2021-08-15 11:11:10 [set] Add page_t::set_range()
cb273fd1 2021-08-15 11:09:08 [set] Add page_t::set()
32bbf53d 2021-08-15 11:06:52 [set] Minor rewrite one cmp() in term of other
2d54c346 2021-07-28 18:20:53 [subset/VarStore] Fix OOM in fuzzer test The test in question is the one added in c68a00b92eb62fdc79f9a2bd1fc7a6acc24a3602. Culprit is that it's allocating lots of memory because of region_indices that are out-of-range anyway. So, try to filter those out first.
bf2c87bf 2021-07-27 13:10:41 Add hb_memcpy() that does len=0 check
b235511e 2021-07-23 12:15:15 Merge pull request #3021 from googlefonts/stable_api [subset] update hb_subset api with final changes before going stable.
c581d11e 2021-07-22 14:04:39 [set] in hb_set_set() avoid calling memcpy on nullptr.
03cd9c5c 2021-07-22 11:27:33 Align lfind() API to match bfind()
bb48bf52 2021-07-08 10:53:45 Rename misc uses of "free" In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
bc33b87f 2021-06-09 11:51:32 [set] Use references, not pointers, in internal C++ API
9cfac093 2021-06-09 11:41:59 [set] Add copy constructor/assignment
466e1fdf 2021-05-26 14:22:21 [subset] remove unnessecary brackets.
58323729 2021-05-26 14:06:02 Add cmp() method for major to page map.
2c137045 2021-05-20 16:22:04 [subset] Optimize set iteration by caching the last found page map index. Reuse it if possible on consecutive calls to next(). Will signifcantly speed up cases where the entire set is iterated. In local testing iterating a very large set was 10x faster.
9e5738a8 2021-05-26 15:12:39 [set] Okay, giving up on constexpr till C++14 ../src/hb-set.hh:213:89: error: call to non-'constexpr' function 'const elt_t& hb_vector_size_t<elt_t, byte_size>::operator[](unsigned int) const [with elt_t = long long unsigned int; unsigned int byte_size = 64]'
90fa558a 2021-05-26 15:05:48 [set] Another try at constexpr to make msvc happy
bf5d4a63 2021-05-26 14:27:02 [set] Add TODO
11d03f1f 2021-05-26 14:26:05 [set] Mark a couple methods as constexpr
d2829ad3 2021-05-26 14:24:27 [set] Refactor code into page_t::is_subset()
e47e44a8 2021-05-26 14:19:27 [set] Whitespace
2000f47a 2021-05-19 00:34:09 [set] Compute is_subset by comparing pages. Test subsets one page at a time instead of by codepoints. On my machine this is about 250x faster than the previous implementation.
425ba1f4 2021-04-19 18:01:24 [subset] fixes infinite loop in hb_set_get_max(). Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
092094f7 2021-04-01 15:47:21 Use as_array() and range loops in a few places
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). .
6d83d440 2020-06-28 21:02:51 m[set] Recover set from error in .reset()
881ad720 2021-01-21 14:27:45 [algs] Remove passthru declaration Let compiler figure it out.
ca0b7afe 2021-01-21 12:18:48 [set] Use hb_fill()
33368a12 2021-01-21 11:06:58 uint32_t to unsigned in hb-set.hh
2a0d0b90 2021-01-21 10:45:09 Make set clear work even when set is in failed state.
0ba73e98 2020-09-16 13:56:33 [ENOMEM] handle allocation failures during page compaction.
a4c3732f 2020-09-16 12:35:09 [ENOMEM] fix set clear() causing corruption if the set is in_error().
bbbcad0d 2020-09-16 11:19:40 Revert "[ENOMEM] don't perform set process operations if the other set is in an error state." This reverts commit f3929abafe3b64f15d0dc2d21ad7b493eeb92dfe.
f3929aba 2020-09-15 13:06:36 [ENOMEM] don't perform set process operations if the other set is in an error state. Running a process while the other set is in an error state can potentially corrupt this sets map map (for example by overwritting all of the major values with 0).
689f3f57 2020-04-23 10:51:12 [set] Add << overload for range-sink
2dda6dd7 2020-04-20 14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
d0aaba5c 2020-02-26 09:35:32 fixes oss-fuzz 20886 hb_set_t::resize () is needed after compact()
4081439d 2020-02-25 15:03:12 tweak reflecting review & add test cases
de896278 2020-02-25 07:12:20 coding & comment tweaks
173b745d 2020-02-24 22:56:57 fixed bug & added tests
a5012e97 2020-02-24 17:09:48 optimize hb_set_del_range() fix issue #2193
5a10f3a0 2020-02-07 10:38:27 Use vector instead of map during page compaction in hb-set.
2742c816 2020-01-28 13:55:31 Fix page_map corruption in hb_set_t during process(). If a process operation results in less pages then the current set has, it will likely corrupt the page_map since it overwrites page_map entries ahead of where it's processing. This fixes that problem by removing page_map entries that will be dropped. Then dropping orphaned pages and re-indexing retained pages.
b79ceac3 2019-12-15 16:50:01 Prefer UINT_MAX instead of uint overflow. Also, prefer HB_FEATURE_GLOBAL_START and HB_FEATURE_GLOBAL_END.
e5c7ee9f 2019-11-20 14:22:01 [set] Fix undefined-behavior shift in _previous() harfbuzz/src/hb-set.hh:138:43: runtime error: shift exponent 64 is too large for 64-bit type 'hb_set_t::page_t::elt_t' (aka 'unsigned long long')
78d5eca8 2019-11-18 13:09:29 [set] Fix range-based-loop condition Alternative to https://github.com/harfbuzz/harfbuzz/pull/2046
b73313ad 2019-09-18 00:50:32 Don't seek of out-of-bound value even if the result is not used Fixes this -fno-sanitize-recover=undefined fail, /set/iter: hb-algs.hh:1016:60: runtime error: index 4294967295 out of bounds for type 'unsigned long long const[8]' #0 0x4d1e09 in hb_vector_size_t<unsigned long long, 64u>::operator[](unsigned int) const /home/user/code/harfbuzz/src/./hb-algs.hh:1016:60 #1 0x4d8b5f in hb_set_t::page_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:139:53 #2 0x4d0ada in hb_set_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:602:36 #3 0x4cd76f in hb_set_previous /home/user/code/harfbuzz/src/hb-set.cc:494:15 #4 0x4ca8af in test_set_iter /home/user/code/harfbuzz/test/api/test-set.c:310:3 #5 0x7f3a4f3e0f49 (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49) #6 0x7f3a4f3e0e7a (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a) #7 0x7f3a4f3e1121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121) #8 0x7f3a4f3e1140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140) #9 0x4c8894 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10 #10 0x4c8894 in main /home/user/code/harfbuzz/test/api/test-set.c:408:10 #11 0x7f3a4e3d2b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 #12 0x41e7d9 in _start (/home/user/code/harfbuzz/test/api/test-set+0x41e7d9)
a0b4ac4d 2019-08-24 17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
4cb180d2 2019-07-02 19:44:18 Revert "Use constexpr to replace passthru_ bools" This reverts commit c4aa10ebc8dc28b1f9c90af2ca2092a7535f8395. Broke several compilers... Sigh. The version without constexpr didn't fully optimize out the unreachable code on clang. So, revert it is...
c4aa10eb 2019-07-02 19:15:03 Use constexpr to replace passthru_ bools
08c3648c 2019-05-17 16:21:34 Oops, fix include
24958b88 2019-05-17 16:20:36 [set] Use StructAtOffsetUnaligned
f7a45851 2019-05-15 16:49:35 Add hb_bitwise_* ops
889dc1eb 2019-05-14 22:28:07 [iter] Remove sort categorization See comments.
51376284 2019-05-13 15:36:14 [iter] Track strictly-sorted iterators This make output of hb_enumerate() sorted regardless of input iterator.
4c2fd05c 2019-05-06 19:57:15 [iter] Implement range-based for loops Part of https://github.com/harfbuzz/harfbuzz/issues/1648
824fd342 2019-04-11 11:16:01 Rename a few macros
5bffa9e3 2019-04-02 20:13:16 More
849a0f17 2019-01-29 17:10:19 [iter] Add hb_iter_with_fallback_t instead
4d40ed9d 2019-01-29 13:55:23 [iter] Add hb_iter_with_mixin_t<>
84a25d79 2019-01-29 13:39:19 [iter] Rename
a30e1346 2019-01-28 16:39:01 [iter] Add operator << to set / vector
d438e610 2019-01-28 16:34:04 [iter] Fix operator() impls
090fe56d 2019-01-25 15:34:03 Merge branch 'master' into iter
70a52d6b 2019-01-22 12:15:23 Convert all other enum class consts to static constexpr Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
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.
636786ec 2019-01-08 23:48:35 [iter] Rename __item_type__ to __item_t__
815cde9f 2019-01-07 18:33:04 [iter] Use is_sorted_iterator
b5d6fe1a 2019-01-02 16:20:40 [iter] Remove hb_sorted_iter_t Not enforcing it using type hierarchy.
5ec11ce1 2018-12-27 17:17:28 [iter] Clarify readonly vs lvalue iterators lvalue iterators must declare __item_type__ as a reference.