summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar René Scharfe <l.s.r@web.de>2017-12-25 18:44:58 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-12-28 13:50:05 -0800
commit4ad315fc99d906364c9a5d75a319752cf4056ae5 (patch)
tree56ee9299ccc48c075d3c41714f8539f418361e1a
parentref-filter: use clear_commit_marks_many() in do_merge_filter() (diff)
downloadtgif-4ad315fc99d906364c9a5d75a319752cf4056ae5.tar.xz
object: add clear_commit_marks_all()
Add a function for clearing the commit marks of all in-core commit objects. It's similar to clear_object_flags(), but more precise, since it leaves the other object types alone. It still has to iterate through them, though. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--object.c11
-rw-r--r--object.h5
2 files changed, 16 insertions, 0 deletions
diff --git a/object.c b/object.c
index b9a4a0e501..0afdfd19b7 100644
--- a/object.c
+++ b/object.c
@@ -434,3 +434,14 @@ void clear_object_flags(unsigned flags)
obj->flags &= ~flags;
}
}
+
+void clear_commit_marks_all(unsigned int flags)
+{
+ int i;
+
+ for (i = 0; i < obj_hash_size; i++) {
+ struct object *obj = obj_hash[i];
+ if (obj && obj->type == OBJ_COMMIT)
+ obj->flags &= ~flags;
+ }
+}
diff --git a/object.h b/object.h
index df8abe96f7..1111f64dd9 100644
--- a/object.h
+++ b/object.h
@@ -148,4 +148,9 @@ void object_array_clear(struct object_array *array);
void clear_object_flags(unsigned flags);
+/*
+ * Clear the specified object flags from all in-core commit objects.
+ */
+extern void clear_commit_marks_all(unsigned int flags);
+
#endif /* OBJECT_H */