summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2017-03-09 08:28:48 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-03-10 11:51:30 -0800
commita0262c51d0f36678a8c6143a9c73d2058fd6ad57 (patch)
tree6e7b19ebe8e3b39fd0c25df4a4b1b750c5ac8eba
parentref-filter: move ref_cbdata definition into ref-filter.c (diff)
downloadtgif-a0262c51d0f36678a8c6143a9c73d2058fd6ad57.tar.xz
ref-filter: use contains_result enum consistently
Commit cbc60b672 (git tag --contains: avoid stack overflow, 2014-04-24) adapted the -1/0/1 contains status into a tri-state enum. However, some of the code still used the numeric values, or assumed that no/yes correspond to C's boolean true/false. Let's switch to using the symbolic values everywhere, which will make it easier to change them. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--ref-filter.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ref-filter.c b/ref-filter.c
index 6546dba732..631978a4f9 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1513,20 +1513,20 @@ static enum contains_result contains_test(struct commit *candidate,
{
/* was it previously marked as containing a want commit? */
if (candidate->object.flags & TMP_MARK)
- return 1;
+ return CONTAINS_YES;
/* or marked as not possibly containing a want commit? */
if (candidate->object.flags & UNINTERESTING)
- return 0;
+ return CONTAINS_NO;
/* or are we it? */
if (in_commit_list(want, candidate)) {
candidate->object.flags |= TMP_MARK;
- return 1;
+ return CONTAINS_YES;
}
if (parse_commit(candidate) < 0)
- return 0;
+ return CONTAINS_NO;
- return -1;
+ return CONTAINS_UNKNOWN;
}
static void push_to_contains_stack(struct commit *candidate, struct contains_stack *contains_stack)
@@ -1540,7 +1540,7 @@ static enum contains_result contains_tag_algo(struct commit *candidate,
const struct commit_list *want)
{
struct contains_stack contains_stack = { 0, 0, NULL };
- int result = contains_test(candidate, want);
+ enum contains_result result = contains_test(candidate, want);
if (result != CONTAINS_UNKNOWN)
return result;
@@ -1557,7 +1557,7 @@ static enum contains_result contains_tag_algo(struct commit *candidate,
}
/*
* If we just popped the stack, parents->item has been marked,
- * therefore contains_test will return a meaningful 0 or 1.
+ * therefore contains_test will return a meaningful yes/no.
*/
else switch (contains_test(parents->item, want)) {
case CONTAINS_YES:
@@ -1579,7 +1579,7 @@ static enum contains_result contains_tag_algo(struct commit *candidate,
static int commit_contains(struct ref_filter *filter, struct commit *commit)
{
if (filter->with_commit_tag_algo)
- return contains_tag_algo(commit, filter->with_commit);
+ return contains_tag_algo(commit, filter->with_commit) == CONTAINS_YES;
return is_descendant_of(commit, filter->with_commit);
}