Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ref-filter.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/ref-filter.c b/ref-filter.c
index 948a25335a..e18e977b9e 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -2330,20 +2330,22 @@ static int for_each_fullref_in_pattern(struct ref_filter *filter,
/*
* Given a ref (oid, refname), check if the ref belongs to the array
* of oids. If the given ref is a tag, check if the given tag points
- * at one of the oids in the given oid array.
+ * at one of the oids in the given oid array. Returns non-zero if a
+ * match is found.
+ *
* NEEDSWORK:
* As the refs are cached we might know what refname peels to without
* the need to parse the object via parse_object(). peel_ref() might be a
* more efficient alternative to obtain the pointee.
*/
-static const struct object_id *match_points_at(struct oid_array *points_at,
- const struct object_id *oid,
- const char *refname)
+static int match_points_at(struct oid_array *points_at,
+ const struct object_id *oid,
+ const char *refname)
{
struct object *obj;
if (oid_array_lookup(points_at, oid) >= 0)
- return oid;
+ return 1;
obj = parse_object_with_flags(the_repository, oid,
PARSE_OBJECT_SKIP_HASH_CHECK);
while (obj && obj->type == OBJ_TAG) {
@@ -2354,15 +2356,14 @@ static const struct object_id *match_points_at(struct oid_array *points_at,
break;
}
- oid = get_tagged_oid(tag);
- if (oid_array_lookup(points_at, oid) >= 0)
- return oid;
+ if (oid_array_lookup(points_at, get_tagged_oid(tag)) >= 0)
+ return 1;
obj = tag->tagged;
}
if (!obj)
die(_("malformed object at '%s'"), refname);
- return NULL;
+ return 0;
}
/*