Commit Graph

12215 Commits

Author SHA1 Message Date
Behdad Esfahbod 829b0f3353
Merge pull request #3154 from harfbuzz/set-invert
Resurrect hb_set_invert()
2021-08-20 01:28:15 -06:00
Garret Rieger 915550ab19 [set] remove inverted test TODO. 2021-08-19 17:48:38 -07:00
Garret Rieger c4ed582997 [set] add test for inverted set operations.
This test checks all possible set configurations against each operation type.
2021-08-19 17:47:41 -07:00
Garret Rieger 325fd6ddb8 [set] add tests for inverted set equality. 2021-08-19 15:54:31 -07:00
Garret Rieger 287032af6c [set] update set test TODO list. 2021-08-19 15:45:28 -07:00
Garret Rieger 5c003d80a6 [set] add tests for inverted previous iteration. 2021-08-19 15:41:12 -07: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
Garret Rieger 3f2cc582f2 [set] add basic and iteration set inverion tests. 2021-08-19 15:05:10 -07:00
Behdad Esfahbod 1d832693e1 [set] Protect against immutible null set with invertible addition 2021-08-19 16:02:30 -06:00
Behdad Esfahbod 7115af23eb [util] Fix glib deprecation warning re g_memdup() 2021-08-19 15:55:21 -06:00
Behdad Esfahbod dc800ffd6c [bit-set] Remove TODO items we don't intend to finish 2021-08-19 15:41:27 -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 ec4812a7d4 [bit-page] Remove unused inverted code 2021-08-19 13:32:44 -06:00
Behdad Esfahbod 87885e6f02 [bit-set-invertible] Fix next/previous() logic 2021-08-19 13:26:25 -06:00
Behdad Esfahbod ee4e331a6e [bit-set] Remove unused get_min(inverted) 2021-08-19 13:24:15 -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 f09d5ed0f5 [algs] Remove hb_bitwise_non() 2021-08-19 13:06:10 -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 060de189ec [bit-page] Fix sanitizer error
This essentially reverts 9449cfeefd

Problem was dereferencing pointer at end of array...
2021-08-19 00:58:34 -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 6afefe1dc3 [algs] Remove unnecessary struct tag names 2021-08-19 00:27:03 -06:00
Behdad Esfahbod 8aa92ff8f0 [bit-set-invertible] Implement get_min/max 2021-08-18 23:01:06 -06:00
Behdad Esfahbod 18f50275ed [bit-set] Restructure get_min/max() in prep for adding inverted 2021-08-18 22:08: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 0efa614c04 [bit-set] Add del_array/del_sorted_array() 2021-08-18 21:18:32 -06:00
Behdad Esfahbod 48ad9eef1e [bit-set] Merge page_for_insert() into page_for() 2021-08-18 21:05:21 -06:00
Garret Rieger 280366ba6a Add TODO to update NN offsets to allow nulls. 2021-08-18 16:52:45 -06:00
Garret Rieger dc31920bbe Don't serialize null offsets in CPAL.
Fixes https://oss-fuzz.com/testcase-detail/5443213648330752
2021-08-18 16:52:45 -06:00
Simon Cozens e29f56354a Replace "langstr" with more helpful help. 2021-08-18 09:31:44 -06:00
Caleb Maclennan 7f9173d67f [ci] Fix workflow so ‘publish-*’ dependencies can run
This is a documented but bizarre quirk on Circle CI: in order for a job
to run as a dependency of another job that has a filter it must also
have at least one filter of its own, even if the filter is a noop.

https://circleci.com/docs/2.0/workflows/#executing-workflows-for-a-git-tag
2021-08-18 14:25:15 +02:00
Caleb Maclennan a997f8918e [ci] Bump ghr tool used to post release artifacts to v0.14.0
Also make sure we only download it once per CI run, not three times...
2021-08-18 14:25:15 +02:00
Khaled Hosny 80ff72f39d [doc] Misc fixes 2021-08-18 13:16:51 +02:00
Khaled Hosny 9aa6f8a93f 2.9.0 2021-08-18 09:32:04 +02:00
Khaled Hosny adf3f3b317 Revert "2.9.0"
This reverts commit 791aba9c45.
2021-08-18 09:29:28 +02:00
Khaled Hosny 791aba9c45 2.9.0 2021-08-18 09:26:12 +02: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