|
aa233ece
|
2025-03-12T22:59:07
|
|
[bit-vector] Add a hb_bit_vector_t type
Unused.
|
|
c05002af
|
2025-02-05T16:46:13
|
|
[set] Add may_have() as alias for get()
|
|
255dadc1
|
2025-02-04T22:02:11
|
|
[set] Speed up may_intersect()
|
|
7862c7c5
|
2025-02-04T21:37:27
|
|
Rename a method again
|
|
95eefa38
|
2025-02-04T19:16:57
|
|
[set] Add a brute-force intersects(other_set)
|
|
3d75d445
|
2024-05-11T08:58:58
|
|
[set] Clarify add_range() params
|
|
3cfdbd67
|
2024-02-16T23:41:55
|
|
Use `noexcept` on swap, move constructors, etc.
|
|
cdcad93b
|
2023-11-03T12:45:16
|
|
[set] Mark as realloc-movable
|
|
867640af
|
2023-07-14T13:09:16
|
|
Revert "[set] Add test_and_add / test_and_del"
This reverts commit de1237fbf2660b5952dde4db171a62d9b1a77c92.
This seems to be a net loss.
|
|
de1237fb
|
2023-07-14T12:38:56
|
|
[set] Add test_and_add / test_and_del
Use in graph.
|
|
ca27925d
|
2023-06-03T16:18:15
|
|
Use hb_codepoint_pair_t in more places
|
|
5153218b
|
2023-01-05T16:26:41
|
|
[set] Add hb_set_is_inverted()
|
|
35f46e74
|
2023-01-04T17:12:08
|
|
[map] Add hb_map_keys() and hb_map_values()
|
|
d2a2670e
|
2022-11-28T19:42:27
|
|
[iter] Simplify has() interface implementations
|
|
bcd59b51
|
2022-07-20T15:57:09
|
|
[set/map] Remove init_shallow/fini_shallow()
|
|
97ea10a6
|
2022-06-02T11:14:17
|
|
Remove old nullptr_t hacks
Were used for hashmap before.
|
|
58f848da
|
2022-05-19T15:42:54
|
|
[set/map] Adjust hash function return type
|
|
0623aa59
|
2022-05-19T14:12:42
|
|
[benchmark-set] Add benchmark for set copy
|
|
124f9aeb
|
2022-05-19T12:58:02
|
|
[set] Make hb_set_t hashable
|
|
1f578b5a
|
2022-05-18T15:24:40
|
|
[set] Add pre-allocation internal API
|
|
7fa580bc
|
2022-05-12T13:05:32
|
|
[map] Fix map copy/move constructors to actually work
Ouch!
|
|
a09dd87c
|
2022-05-12T12:58:07
|
|
[set] Fix set copy/move constructors to actually work
Ouch!
|
|
c81198b5
|
2022-05-12T11:58:37
|
|
[set] Tweak move operators a bit
Should be equivalent.
|
|
0a388785
|
2022-03-25T09:42:36
|
|
[set] Minor touch-up on the previous commit
|
|
01829882
|
2022-03-25T08:36:44
|
|
[set] Add call to export set contents to an array. (#3500)
[set] Add hb_set_next_many.
|
|
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.
|
|
811f80a7
|
2021-11-02T00:14:34
|
|
[algs] Use std::move instead of hb_move()
|
|
3604f5f2
|
2021-11-01T22:37:42
|
|
[algs] Include <initializer_list>
|
|
e97e7996
|
2021-11-01T21:34:46
|
|
Verbiage
|
|
34fa5e29
|
2021-11-01T21:25:03
|
|
[set] More default operators
|
|
dcd18da6
|
2021-11-01T20:55:30
|
|
[set] Add standard the 5 standard methods & tests
|
|
93ac700d
|
2021-08-29T10:32:40
|
|
[set] Add copy-constructor/assignment again
|
|
f0c3804f
|
2021-08-17T15:37:19
|
|
[set] Add hb_bit_set_invertible_t and resurrect hb_set_invert()
Implementation is NOT complete yet.
|
|
b5cdbdc0
|
2021-08-17T10:53:08
|
|
[set] Turn hb_set_t into instance of template taking implementation t
|
|
fad452bf
|
2021-08-16T20: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-15T12:40:36
|
|
[set] Whitespace
|
|
9b390f8c
|
2021-08-15T12:34:55
|
|
[set] Move page_t into hb-bit-page.hh
|
|
0c3e02ee
|
2021-08-15T12:10:13
|
|
[set] Add "inverted" to page_t::is_empty()
|
|
9bd64fa0
|
2021-08-15T11:42:16
|
|
[set] Add "inverted" to page_t::next/prev()
|
|
c88e7ec9
|
2021-08-15T11:39:31
|
|
[set] Add page_t::elt_maybe_invert()
|
|
9449cfee
|
2021-08-15T11:35:33
|
|
[set] Simplify page_t::next/prev()
|
|
4394ee1f
|
2021-08-15T11:28:09
|
|
[set] Add inverted to page_t::get_min/max()
|
|
0dcd9b15
|
2021-08-15T11:11:10
|
|
[set] Add page_t::set_range()
|
|
cb273fd1
|
2021-08-15T11:09:08
|
|
[set] Add page_t::set()
|
|
32bbf53d
|
2021-08-15T11:06:52
|
|
[set] Minor rewrite one cmp() in term of other
|
|
2d54c346
|
2021-07-28T18: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-27T13:10:41
|
|
Add hb_memcpy() that does len=0 check
|
|
b235511e
|
2021-07-23T12:15:15
|
|
Merge pull request #3021 from googlefonts/stable_api
[subset] update hb_subset api with final changes before going stable.
|
|
c581d11e
|
2021-07-22T14:04:39
|
|
[set] in hb_set_set() avoid calling memcpy on nullptr.
|
|
03cd9c5c
|
2021-07-22T11:27:33
|
|
Align lfind() API to match bfind()
|
|
bb48bf52
|
2021-07-08T10:53:45
|
|
Rename misc uses of "free"
In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
|
|
bc33b87f
|
2021-06-09T11:51:32
|
|
[set] Use references, not pointers, in internal C++ API
|
|
9cfac093
|
2021-06-09T11:41:59
|
|
[set] Add copy constructor/assignment
|
|
466e1fdf
|
2021-05-26T14:22:21
|
|
[subset] remove unnessecary brackets.
|
|
58323729
|
2021-05-26T14:06:02
|
|
Add cmp() method for major to page map.
|
|
2c137045
|
2021-05-20T16: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-26T15: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-26T15:05:48
|
|
[set] Another try at constexpr to make msvc happy
|
|
bf5d4a63
|
2021-05-26T14:27:02
|
|
[set] Add TODO
|
|
11d03f1f
|
2021-05-26T14:26:05
|
|
[set] Mark a couple methods as constexpr
|
|
d2829ad3
|
2021-05-26T14:24:27
|
|
[set] Refactor code into page_t::is_subset()
|
|
e47e44a8
|
2021-05-26T14:19:27
|
|
[set] Whitespace
|
|
2000f47a
|
2021-05-19T00: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-19T18:01:24
|
|
[subset] fixes infinite loop in hb_set_get_max().
Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
|
|
092094f7
|
2021-04-01T15:47:21
|
|
Use as_array() and range loops in a few places
|
|
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).
.
|
|
6d83d440
|
2020-06-28T21:02:51
|
|
m[set] Recover set from error in .reset()
|
|
881ad720
|
2021-01-21T14:27:45
|
|
[algs] Remove passthru declaration
Let compiler figure it out.
|
|
ca0b7afe
|
2021-01-21T12:18:48
|
|
[set] Use hb_fill()
|
|
33368a12
|
2021-01-21T11:06:58
|
|
uint32_t to unsigned in hb-set.hh
|
|
2a0d0b90
|
2021-01-21T10:45:09
|
|
Make set clear work even when set is in failed state.
|
|
0ba73e98
|
2020-09-16T13:56:33
|
|
[ENOMEM] handle allocation failures during page compaction.
|
|
a4c3732f
|
2020-09-16T12:35:09
|
|
[ENOMEM] fix set clear() causing corruption if the set is in_error().
|
|
bbbcad0d
|
2020-09-16T11: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-15T13: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-23T10:51:12
|
|
[set] Add << overload for range-sink
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
d0aaba5c
|
2020-02-26T09:35:32
|
|
fixes oss-fuzz 20886
hb_set_t::resize () is needed after compact()
|
|
4081439d
|
2020-02-25T15:03:12
|
|
tweak reflecting review & add test cases
|
|
de896278
|
2020-02-25T07:12:20
|
|
coding & comment tweaks
|
|
173b745d
|
2020-02-24T22:56:57
|
|
fixed bug & added tests
|
|
a5012e97
|
2020-02-24T17:09:48
|
|
optimize hb_set_del_range()
fix issue #2193
|
|
5a10f3a0
|
2020-02-07T10:38:27
|
|
Use vector instead of map during page compaction in hb-set.
|
|
2742c816
|
2020-01-28T13: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-15T16:50:01
|
|
Prefer UINT_MAX instead of uint overflow.
Also, prefer HB_FEATURE_GLOBAL_START and HB_FEATURE_GLOBAL_END.
|
|
e5c7ee9f
|
2019-11-20T14: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-18T13:09:29
|
|
[set] Fix range-based-loop condition
Alternative to https://github.com/harfbuzz/harfbuzz/pull/2046
|
|
b73313ad
|
2019-09-18T00: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-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
4cb180d2
|
2019-07-02T19: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-02T19:15:03
|
|
Use constexpr to replace passthru_ bools
|
|
08c3648c
|
2019-05-17T16:21:34
|
|
Oops, fix include
|
|
24958b88
|
2019-05-17T16:20:36
|
|
[set] Use StructAtOffsetUnaligned
|
|
f7a45851
|
2019-05-15T16:49:35
|
|
Add hb_bitwise_* ops
|
|
889dc1eb
|
2019-05-14T22:28:07
|
|
[iter] Remove sort categorization
See comments.
|
|
51376284
|
2019-05-13T15:36:14
|
|
[iter] Track strictly-sorted iterators
This make output of hb_enumerate() sorted regardless of input iterator.
|
|
4c2fd05c
|
2019-05-06T19:57:15
|
|
[iter] Implement range-based for loops
Part of https://github.com/harfbuzz/harfbuzz/issues/1648
|
|
824fd342
|
2019-04-11T11:16:01
|
|
Rename a few macros
|
|
5bffa9e3
|
2019-04-02T20:13:16
|
|
More
|