oidset: refactor oidset_insert_from_set()

In a following commit, we will need to add all the oids from a set into another set. In "list-objects-filter.c", there is already a static function called add_all() to do that. Let's rename this function oidset_insert_from_set() and move it into oidset.{c,h} to make it generally available. While at it, let's remove a useless `!= NULL`. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Feb 14, 2024 at 15:25 UTC eaf07b7d15e067305d33150eb98bf0351f9f4cbd
3 files changed +17 -10
list-objects-filter.c
+1 -10
@@ -711,15 +711,6 @@ static void filter_combine__free(void *filter_data)
711 free(d);
712 }
713
714 -static void add_all(struct oidset *dest, struct oidset *src) {
715 - struct oidset_iter iter;
716 - struct object_id *src_oid;
717 -
718 - oidset_iter_init(src, &iter);
719 - while ((src_oid = oidset_iter_next(&iter)) != NULL)
720 - oidset_insert(dest, src_oid);
721 -}
722 -
714 static void filter_combine__finalize_omits(
715 struct oidset *omits,
716 void *filter_data)
@@ -728,7 +719,7 @@ static void filter_combine__finalize_omits(
719 size_t sub;
720
721 for (sub = 0; sub < d->nr; sub++) {
731 - add_all(omits, &d->sub[sub].omits);
722 + oidset_insert_from_set(omits, &d->sub[sub].omits);
723 oidset_clear(&d->sub[sub].omits);
724 }
725 }
oidset.c
+10
@@ -23,6 +23,16 @@ int oidset_insert(struct oidset *set, const struct object_id *oid)
23 return !added;
24 }
25
26 +void oidset_insert_from_set(struct oidset *dest, struct oidset *src)
27 +{
28 + struct oidset_iter iter;
29 + struct object_id *src_oid;
30 +
31 + oidset_iter_init(src, &iter);
32 + while ((src_oid = oidset_iter_next(&iter)))
33 + oidset_insert(dest, src_oid);
34 +}
35 +
36 int oidset_remove(struct oidset *set, const struct object_id *oid)
37 {
38 khiter_t pos = kh_get_oid_set(&set->set, *oid);
oidset.h
+6
@@ -47,6 +47,12 @@ int oidset_contains(const struct oidset *set, const struct object_id *oid);
47 */
48 int oidset_insert(struct oidset *set, const struct object_id *oid);
49
50 +/**
51 + * Insert all the oids that are in set 'src' into set 'dest'; a copy
52 + * is made of each oid inserted into set 'dest'.
53 + */
54 +void oidset_insert_from_set(struct oidset *dest, struct oidset *src);
55 +
56 /**
57 * Remove the oid from the set.
58 *