summaryrefslogtreecommitdiff
path: root/commit-reach.h
diff options
context:
space:
mode:
Diffstat (limited to 'commit-reach.h')
-rw-r--r--commit-reach.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/commit-reach.h b/commit-reach.h
index f1cf9bfcd8..13dec25cee 100644
--- a/commit-reach.h
+++ b/commit-reach.h
@@ -1,8 +1,12 @@
#ifndef __COMMIT_REACH_H__
#define __COMMIT_REACH_H__
+#include "commit-slab.h"
+
struct commit;
struct commit_list;
+struct contains_cache;
+struct ref_filter;
struct commit_list *get_merge_bases_many(struct commit *one,
int n,
@@ -20,7 +24,6 @@ int is_descendant_of(struct commit *commit, struct commit_list *with_commit);
int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit **reference);
int in_merge_bases(struct commit *commit, struct commit *reference);
-
/*
* Takes a list of commits and returns a new list where those
* have been removed that can be reached from other commits in
@@ -41,4 +44,19 @@ void reduce_heads_replace(struct commit_list **heads);
int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid);
+/*
+ * Unknown has to be "0" here, because that's the default value for
+ * contains_cache slab entries that have not yet been assigned.
+ */
+enum contains_result {
+ CONTAINS_UNKNOWN = 0,
+ CONTAINS_NO,
+ CONTAINS_YES
+};
+
+define_commit_slab(contains_cache, enum contains_result);
+
+int commit_contains(struct ref_filter *filter, struct commit *commit,
+ struct commit_list *list, struct contains_cache *cache);
+
#endif