Commit Graph

30 Commits

Author SHA1 Message Date
Behdad Esfahbod 1f578b5a32 [set] Add pre-allocation internal API 2022-05-18 15:25:00 -06:00
Behdad Esfahbod c81198b5bc [set] Tweak move operators a bit
Should be equivalent.
2022-05-12 12:14:02 -06:00
Behdad Esfahbod 0a38878549 [set] Minor touch-up on the previous commit 2022-03-25 09:42:36 -06:00
Andrew John 0182988229
[set] Add call to export set contents to an array. (#3500)
[set] Add hb_set_next_many.
2022-03-25 09:36:44 -06:00
Behdad Esfahbod 38debbab7e [set] Add successful check in swap() 2021-11-01 22:17:35 -06:00
Behdad Esfahbod 11eadb5d28 [bit-set-invertible] Implement standard-5 methods & swap 2021-11-01 21:07:09 -06:00
Behdad Esfahbod d3e09bf465 [set] Make all operators null-safe again
Changed my mind.

Also for hb_map_clear().

Part of https://github.com/harfbuzz/harfbuzz/pull/3162
2021-08-24 10:31:49 -06:00
Behdad Esfahbod 84c2a30214 [bit-set-invertible] Second try fixing previous() 2021-08-19 16:33:48 -06:00
Behdad Esfahbod 8f88747a5e [bit-set-invertible] Fix previous() iteration 2021-08-19 16:31:01 -06:00
Behdad Esfahbod 92908c122b [bit-set-invertible] Remove extra check
We don't expect immutable / null set in this code.
2021-08-19 15:28:26 -06:00
Behdad Esfahbod 1babe80ed2 [bit-set-invertible] Fix last remaining corner-case 2021-08-19 15:18:32 -06:00
Behdad Esfahbod e8911d137c [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.
2021-08-19 15:00:33 -06:00
Behdad Esfahbod 2579dc648f [bit-set-invertible] Move code around 2021-08-19 14:48:27 -06:00
Behdad Esfahbod 2dfc104236 [bit-set-invertible] Implement is_empty() for inverted case as well 2021-08-19 14:47:33 -06:00
Behdad Esfahbod 87885e6f02 [bit-set-invertible] Fix next/previous() logic 2021-08-19 13:26:25 -06:00
Behdad Esfahbod eec1a25e71 [bit-set-invertible] Rewrite get_min/max() in terms of next/previous() 2021-08-19 13:24:00 -06:00
Behdad Esfahbod f4fd7baf7e [bit-set-invertible] Fix subtract() logic 2021-08-19 13:05:12 -06:00
Behdad Esfahbod f317d8e426 [bit-set-invertible] Fix intersect() logic 2021-08-19 13:01:07 -06:00
Behdad Esfahbod b21038d91d [bit-set-invertible] Rewrite next/previous_range() in terms of s.next/previous() 2021-08-19 11:24:17 -06:00
Behdad Esfahbod eb98bc1e32 [bit-set-invertible] Rewrite next/previous() using s.next/previous_range() 2021-08-19 11:19:24 -06:00
Behdad Esfahbod 248ad3bce5 [bit-set-invertible] Implement next/previous
This makes invertible set functionality complete.
2021-08-19 10:17:51 -06:00
Behdad Esfahbod c27f5b1288 [bit-set-invertible] Plug in next_range()/previous_range() 2021-08-19 10:01:24 -06:00
Behdad Esfahbod f6aa37159b [bit-set-invertible] Fix process logic for inverted
[# On branch set-invert
2021-08-19 01:12:25 -06:00
Behdad Esfahbod b119b48079 [bit-set-invertible] Add unlikely() around inverted checks 2021-08-19 00:51:24 -06:00
Behdad Esfahbod b94f24ec79 [bit-set-invertible] Implement set algebra 2021-08-19 00:48:00 -06:00
Behdad Esfahbod 8aa92ff8f0 [bit-set-invertible] Implement get_min/max 2021-08-18 23:01:06 -06:00
Behdad Esfahbod 669b97d949 [bit-set-invertible] Implement iterator 2021-08-18 21:39:04 -06:00
Behdad Esfahbod c66894d7c9 [bit-set-invertible] Write a subset branch as dagger 2021-08-18 21:24:29 -06:00
Behdad Esfahbod c39d2f7a76 [bit-set-invertible] Implement add_array / add_sorted_array / intersects 2021-08-18 21:20:54 -06:00
Behdad Esfahbod f0c3804fa2 [set] Add hb_bit_set_invertible_t and resurrect hb_set_invert()
Implementation is NOT complete yet.
2021-08-17 19:53:43 -06:00