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
*