src/hb-bit-set.hh

Branch


Log

Author Commit Date CI Message
Behdad Esfahbod 08ff7200 2025-09-18T10:57:43 [set] Speed up iterator
Behdad Esfahbod 82370913 2025-09-15T20:16:52 [vector] Simplify resize()
Behdad Esfahbod e42714cf 2025-09-15T19:05:38 [iup] Reuse bit-set allocs
Behdad Esfahbod 5f61ccf0 2025-03-13T13:22:28 [set] Fix reallocation Was shrinking malloced vectors inadverently.
Behdad Esfahbod a0d76c5b 2025-03-12T16:33:13 [atomic] Templatize
Behdad Esfahbod 34464657 2025-02-06T12:03:18 [set] Tweak allocation Allocation 2-page sets as exact count as well. Don't do the same for the page_map.
Behdad Esfahbod c05002af 2025-02-05T16:46:13 [set] Add may_have() as alias for get()
Behdad Esfahbod 900db7b1 2025-02-05T16:41:49 [bit-set] Add a couple of alias methods
Behdad Esfahbod 7b927748 2025-02-05T12:25:54 [bit-set] Rename a method
Behdad Esfahbod cb09fe79 2025-02-04T22:54:10 [bit-set] Remove a likely()
Behdad Esfahbod 749dc1ee 2025-02-04T22:53:17 [bit-set] Fix may_intersect() logic
Behdad Esfahbod 255dadc1 2025-02-04T22:02:11 [set] Speed up may_intersect()
Behdad Esfahbod a6173280 2025-02-04T22:00:14 [bit-set] Sprinkle a few .arrayZ around All accesses are valid.
Bruce Mitchener 3cfdbd67 2024-02-16T23:41:55 Use `noexcept` on swap, move constructors, etc.
Bruce Mitchener f380a328 2023-08-25T14:01:01 Fix some typos.
Behdad Esfahbod 7de2f515 2023-07-20T12:46:54 [set] Remove dependency on hb-machinery.hh
Behdad Esfahbod 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.
Behdad Esfahbod de1237fb 2023-07-14T12:38:56 [set] Add test_and_add / test_and_del Use in graph.
Behdad Esfahbod 347c1f70 2023-07-09T09:33:04 [set] Keep (lazy) population per bit-page 36% speedup in: BM_subset/subset_glyphs/merged.devalast.ttf/10
Behdad Esfahbod 0364c69e 2023-06-07T15:52:18 [iter] Add has_fast_len Set iterators are not random_access, but have fast len().
Behdad Esfahbod ca27925d 2023-06-03T16:18:15 Use hb_codepoint_pair_t in more places
Behdad Esfahbod a58bbe54 2023-05-09T12:06:35 [set] Use better hash
Behdad Esfahbod c0e6a96a 2023-05-08T14:02:55 [bit-set] Minor access an array directly
Behdad Esfahbod f4d3b49e 2023-05-08T13:59:48 [set] Micro-optimize iteration
Behdad Esfahbod 3416086d 2023-05-08T13:39:48 [set] Optimize is_subset()
Garret Rieger 8d8bcde8 2023-03-15T17:29:08 [set] don't allow -1 (HB_SET_VALUE_INVALID) to be inserted into a hb_set_t. Add tests that check all of the addition methods.
Behdad Esfahbod 207ae11a 2023-01-05T14:08:47 [set] Allocate first page exact
Behdad Esfahbod 45fc919a 2023-01-04T11:35:44 [bit-set] Minor setting length on allocation failure
Behdad Esfahbod 6c272b92 2023-01-03T13:00:41 [set] Don't discard allocation in operator= That had caused memory thrashing. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54789
Behdad Esfahbod 8f2345ca 2023-01-02T18:08:45 Use more vector resize_exact
Behdad Esfahbod 54dd01b8 2022-12-31T13:33:25 [set] Use exact-allocation in copying Significantly reduces memory consumption.
Behdad Esfahbod 0c6a7213 2022-12-31T12:42:29 [set] Another exact-size allocation
Behdad Esfahbod 1bd38651 2022-12-04T12:29:23 [bit-set] Micro-optimize page_for
Behdad Esfahbod b182e280 2022-12-04T12:22:17 [bit-set] Don't clear pages when copying set
Behdad Esfahbod d2a2670e 2022-11-28T19:42:27 [iter] Simplify has() interface implementations
Behdad Esfahbod 9df06a26 2022-11-26T14:56:45 [bit-set] Fix is_subset() short-circut criteria Ouch!
Behdad Esfahbod 03d64b74 2022-11-24T14:33:18 [bit-set] Remove TODO that would never happen
Behdad Esfahbod 690df8a3 2022-11-24T14:32:51 [bit-set] Micro-optimize prev()
Behdad Esfahbod fe5d9176 2022-11-24T14:30:18 [bit-set] Micro-optimize size It's silly that this saves size at all. :(
Behdad Esfahbod cf9b9929 2022-11-24T14:26:28 [bit-set] Micro-optimize process()
Behdad Esfahbod d77903db 2022-11-24T14:22:32 [bit-set] Micro-optimize
Behdad Esfahbod 13dd4b46 2022-11-24T14:20:42 [bit-set] Micro-optimize access
Behdad Esfahbod f73c15ca 2022-08-03T12:54:03 [atomic-int] Add operators for relaxed ops
Behdad Esfahbod e5f0bc8f 2022-07-13T13:22:34 [set] Save a few kilobytes via type erasure of process()
Behdad Esfahbod e2aa2990 2022-05-27T07:06:02 [set] Use relaxed atomic ops for last_page_index Since iterating a set from multiple threads is supported.
Behdad Esfahbod f1bf14ea 2022-05-19T16:42:35 Revert "[set] Cache hash value" This reverts commit 44952bcc259a906b8875ed62dc40de96ade8b95c. While we investivate https://github.com/harfbuzz/harfbuzz/issues/3599
Behdad Esfahbod 58f848da 2022-05-19T15:42:54 [set/map] Adjust hash function return type
Behdad Esfahbod 28b44ac4 2022-05-19T15:01:56 [set] Switch set copy to vector operator = Slows it down currently.
Behdad Esfahbod 44952bcc 2022-05-19T14:02:48 [set] Cache hash value
Behdad Esfahbod 844ac328 2022-05-19T13:54:31 [set] Fix hb_set_t hash stability
Behdad Esfahbod 124f9aeb 2022-05-19T12:58:02 [set] Make hb_set_t hashable
Behdad Esfahbod 1f578b5a 2022-05-18T15:24:40 [set] Add pre-allocation internal API
Behdad Esfahbod 067225a8 2022-04-29T13:04:36 [set] Optimize const page_for() using last_page_lookup caching Similar to previous commit. This speeds up SetLookup benchmark by 50%, but that's because that lookup always hits the same page...
Behdad Esfahbod c283e41c 2022-04-29T12:45:48 [set] Optimize non-const page_for() using last_page_lookup caching This speeds up SetOrderedInsert tests by 15 to 40 percent, and the subset_mplus1p benchmarks by 9 to 27 percent.
Behdad Esfahbod 0a388785 2022-03-25T09:42:36 [set] Minor touch-up on the previous commit
Andrew John 01829882 2022-03-25T08:36:44 [set] Add call to export set contents to an array. (#3500) [set] Add hb_set_next_many.
Andy John ef588ea9 2022-03-21T13:29:22 Add option to insert a sorted arrays of values to sets.
Andy John 7a1e79c3 2022-03-21T13:18:04 Fix typo.
Andy John 4ee00f94 2022-03-21T13:16:28 Use bit shifting instead of multiplying and dividing.
Behdad Esfahbod a28ea8d7 2021-11-01T22:50:54 Simplify swap()
Behdad Esfahbod 38debbab 2021-11-01T22:17:35 [set] Add successful check in swap()
Behdad Esfahbod 1e3f57c0 2021-11-01T21:14:12 [bit-set] Implement standard-5 methods plus swap
Behdad Esfahbod 41b9f2ab 2021-08-29T10:47:11 [set] Add TODO item
Behdad Esfahbod 93ac700d 2021-08-29T10:32:40 [set] Add copy-constructor/assignment again
Behdad Esfahbod c90678cb 2021-08-24T11:11:12 [set] One more try to fix things That I don't let a "make check -j10" run finish before pushing things out means either that we need to speed up our build / test process, or I need a faster laptop...
Behdad Esfahbod 35797696 2021-08-24T10:55:12 [set] One more try at fixing clear() on empty set
Behdad Esfahbod b5177d21 2021-08-24T10:43:37 [set] Fix seam exposed by previous commit
Behdad Esfahbod dc800ffd 2021-08-19T15:35:51 [bit-set] Remove TODO items we don't intend to finish
Behdad Esfahbod e8911d13 2021-08-19T14:59:57 [bit-set-invertible] Implement a couple other missing corner cases Also, in bit-set, don't compute population in is_equal/is_subset() if we don't have it computed already.
Behdad Esfahbod ee4e331a 2021-08-19T13:23:22 [bit-set] Remove unused get_min(inverted)
Behdad Esfahbod b94f24ec 2021-08-19T00:48:00 [bit-set-invertible] Implement set algebra
Behdad Esfahbod 8aa92ff8 2021-08-18T23:01:06 [bit-set-invertible] Implement get_min/max
Behdad Esfahbod 18f50275 2021-08-18T22:08:06 [bit-set] Restructure get_min/max() in prep for adding inverted
Behdad Esfahbod 0efa614c 2021-08-18T21:16:05 [bit-set] Add del_array/del_sorted_array()
Behdad Esfahbod 48ad9eef 2021-08-18T21:05:21 [bit-set] Merge page_for_insert() into page_for()
Behdad Esfahbod f0c3804f 2021-08-17T15:37:19 [set] Add hb_bit_set_invertible_t and resurrect hb_set_invert() Implementation is NOT complete yet.
Behdad Esfahbod 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.