tag: allow parse_tag_buffer to handle arbitrary repositories

Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed Jun 28, 2018 at 18:22 UTC 84f80cd2db5daa71a68df9a71c13524700a4edc7
2 files changed +6 -7
tag.c
+5 -5
@@ -126,7 +126,7 @@ void release_tag_memory(struct tag *t)
126 t->date = 0;
127 }
128
129 -int parse_tag_buffer_the_repository(struct tag *item, const void *data, unsigned long size)
129 +int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, unsigned long size)
130 {
131 struct object_id oid;
132 char type[20];
@@ -154,13 +154,13 @@ int parse_tag_buffer_the_repository(struct tag *item, const void *data, unsigned
154 bufptr = nl + 1;
155
156 if (!strcmp(type, blob_type)) {
157 - item->tagged = (struct object *)lookup_blob(the_repository, &oid);
157 + item->tagged = (struct object *)lookup_blob(r, &oid);
158 } else if (!strcmp(type, tree_type)) {
159 - item->tagged = (struct object *)lookup_tree(the_repository, &oid);
159 + item->tagged = (struct object *)lookup_tree(r, &oid);
160 } else if (!strcmp(type, commit_type)) {
161 - item->tagged = (struct object *)lookup_commit(the_repository, &oid);
161 + item->tagged = (struct object *)lookup_commit(r, &oid);
162 } else if (!strcmp(type, tag_type)) {
163 - item->tagged = (struct object *)lookup_tag(the_repository, &oid);
163 + item->tagged = (struct object *)lookup_tag(r, &oid);
164 } else {
165 error("Unknown type %s", type);
166 item->tagged = NULL;
tag.h
+1 -2
@@ -12,8 +12,7 @@ struct tag {
12 timestamp_t date;
13 };
14 extern struct tag *lookup_tag(struct repository *r, const struct object_id *oid);
15 -#define parse_tag_buffer(r, i, d, s) parse_tag_buffer_##r(i, d, s)
16 -extern int parse_tag_buffer_the_repository(struct tag *item, const void *data, unsigned long size);
15 +extern int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, unsigned long size);
16 extern int parse_tag(struct tag *item);
17 extern void release_tag_memory(struct tag *t);
18 #define deref_tag(r, o, w, l) deref_tag_##r(o, w, l)