ref-filter: use "struct object_id" consistently

Internally we store a "struct object_id", and all of our
callers have one to pass us. But we insist that they peel it
to its bare-sha1 hash, which we then hashcpy() into place.
Let's pass it around as an object_id, which future-proofs us
for a post-sha1 world.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2018-04-06 14:58:32 -04:00 коммит произвёл Junio C Hamano
Родитель 468165c1d8
Коммит 53df97a29d
4 изменённых файлов: 8 добавлений и 8 удалений

Просмотреть файл

@ -117,7 +117,7 @@ static int verify_tag(const char *name, const char *ref,
return -1; return -1;
if (format->format) if (format->format)
pretty_print_ref(name, oid->hash, format); pretty_print_ref(name, oid, format);
return 0; return 0;
} }

Просмотреть файл

@ -72,7 +72,7 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
} }
if (format.format) if (format.format)
pretty_print_ref(name, oid.hash, &format); pretty_print_ref(name, &oid, &format);
} }
return had_error; return had_error;
} }

Просмотреть файл

@ -1826,12 +1826,12 @@ static const struct object_id *match_points_at(struct oid_array *points_at,
/* Allocate space for a new ref_array_item and copy the objectname and flag to it */ /* Allocate space for a new ref_array_item and copy the objectname and flag to it */
static struct ref_array_item *new_ref_array_item(const char *refname, static struct ref_array_item *new_ref_array_item(const char *refname,
const unsigned char *objectname, const struct object_id *oid,
int flag) int flag)
{ {
struct ref_array_item *ref; struct ref_array_item *ref;
FLEX_ALLOC_STR(ref, refname, refname); FLEX_ALLOC_STR(ref, refname, refname);
hashcpy(ref->objectname.hash, objectname); oidcpy(&ref->objectname, oid);
ref->flag = flag; ref->flag = flag;
return ref; return ref;
@ -1927,7 +1927,7 @@ static int ref_filter_handler(const char *refname, const struct object_id *oid,
* to do its job and the resulting list may yet to be pruned * to do its job and the resulting list may yet to be pruned
* by maxcount logic. * by maxcount logic.
*/ */
ref = new_ref_array_item(refname, oid->hash, flag); ref = new_ref_array_item(refname, oid, flag);
ref->commit = commit; ref->commit = commit;
REALLOC_ARRAY(ref_cbdata->array->items, ref_cbdata->array->nr + 1); REALLOC_ARRAY(ref_cbdata->array->items, ref_cbdata->array->nr + 1);
@ -2165,11 +2165,11 @@ void show_ref_array_item(struct ref_array_item *info,
putchar('\n'); putchar('\n');
} }
void pretty_print_ref(const char *name, const unsigned char *sha1, void pretty_print_ref(const char *name, const struct object_id *oid,
const struct ref_format *format) const struct ref_format *format)
{ {
struct ref_array_item *ref_item; struct ref_array_item *ref_item;
ref_item = new_ref_array_item(name, sha1, 0); ref_item = new_ref_array_item(name, oid, 0);
ref_item->kind = ref_kind_from_refname(name); ref_item->kind = ref_kind_from_refname(name);
show_ref_array_item(ref_item, format); show_ref_array_item(ref_item, format);
free_array_item(ref_item); free_array_item(ref_item);

Просмотреть файл

@ -132,7 +132,7 @@ void setup_ref_filter_porcelain_msg(void);
* Print a single ref, outside of any ref-filter. Note that the * Print a single ref, outside of any ref-filter. Note that the
* name must be a fully qualified refname. * name must be a fully qualified refname.
*/ */
void pretty_print_ref(const char *name, const unsigned char *sha1, void pretty_print_ref(const char *name, const struct object_id *oid,
const struct ref_format *format); const struct ref_format *format);
#endif /* REF_FILTER_H */ #endif /* REF_FILTER_H */