diff options
Diffstat (limited to 'ref-filter.c')
-rw-r--r-- | ref-filter.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ref-filter.c b/ref-filter.c index 7b17128bef..2eb41accb3 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -2346,10 +2346,18 @@ static const struct object_id *match_points_at(struct oid_array *points_at, return oid; obj = parse_object(the_repository, oid); while (obj && obj->type == OBJ_TAG) { - oid = get_tagged_oid((struct tag *)obj); + struct tag *tag = (struct tag *)obj; + + if (parse_tag(tag) < 0) { + obj = NULL; + break; + } + + oid = get_tagged_oid(tag); if (oid_array_lookup(points_at, oid) >= 0) return oid; - obj = parse_object(the_repository, oid); + + obj = tag->tagged; } if (!obj) die(_("malformed object at '%s'"), refname); |