Browse Source

tag.c: allow deref_tag to handle arbitrary repositories

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Stefan Beller 7 years ago committed by Junio C Hamano
parent
commit
286d258d4f
  1. 5
      tag.c
  2. 3
      tag.h

5
tag.c

@ -64,12 +64,11 @@ int gpg_verify_tag(const struct object_id *oid, const char *name_to_report, @@ -64,12 +64,11 @@ int gpg_verify_tag(const struct object_id *oid, const char *name_to_report,
return ret;
}

struct object *deref_tag_the_repository(struct object *o, const char *warn, int warnlen)
struct object *deref_tag(struct repository *r, struct object *o, const char *warn, int warnlen)
{
while (o && o->type == OBJ_TAG)
if (((struct tag *)o)->tagged)
o = parse_object(the_repository,
&((struct tag *)o)->tagged->oid);
o = parse_object(r, &((struct tag *)o)->tagged->oid);
else
o = NULL;
if (!o && warn) {

3
tag.h

@ -15,8 +15,7 @@ extern struct tag *lookup_tag(struct repository *r, const struct object_id *oid) @@ -15,8 +15,7 @@ extern struct tag *lookup_tag(struct repository *r, const struct object_id *oid)
extern int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, unsigned long size);
extern int parse_tag(struct tag *item);
extern void release_tag_memory(struct tag *t);
#define deref_tag(r, o, w, l) deref_tag_##r(o, w, l)
extern struct object *deref_tag_the_repository(struct object *, const char *, int);
extern struct object *deref_tag(struct repository *r, struct object *, const char *, int);
extern struct object *deref_tag_noverify(struct object *);
extern int gpg_verify_tag(const struct object_id *oid,
const char *name_to_report, unsigned flags);

Loading…
Cancel
Save