get_name(): rewrite to take an object_id argument

Rewrite to take an object_id argument and convert the local variable
"peeled" object_id.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty
2015-05-25 18:38:34 +00:00
committed by Junio C Hamano
parent fcb615f51f
commit 99a2cfbfe6

View File

@ -119,10 +119,10 @@ static void add_to_known_names(const char *path,
} }
} }
static int get_name(const char *path, const unsigned char *sha1, int flag, void *cb_data) static int get_name(const char *path, const struct object_id *oid, int flag, void *cb_data)
{ {
int is_tag = starts_with(path, "refs/tags/"); int is_tag = starts_with(path, "refs/tags/");
unsigned char peeled[20]; struct object_id peeled;
int is_annotated, prio; int is_annotated, prio;
/* Reject anything outside refs/tags/ unless --all */ /* Reject anything outside refs/tags/ unless --all */
@ -134,10 +134,10 @@ static int get_name(const char *path, const unsigned char *sha1, int flag, void
return 0; return 0;
/* Is it annotated? */ /* Is it annotated? */
if (!peel_ref(path, peeled)) { if (!peel_ref(path, peeled.hash)) {
is_annotated = !!hashcmp(sha1, peeled); is_annotated = !!oidcmp(oid, &peeled);
} else { } else {
hashcpy(peeled, sha1); oidcpy(&peeled, oid);
is_annotated = 0; is_annotated = 0;
} }
@ -154,7 +154,7 @@ static int get_name(const char *path, const unsigned char *sha1, int flag, void
else else
prio = 0; prio = 0;
add_to_known_names(all ? path + 5 : path + 10, peeled, prio, sha1); add_to_known_names(all ? path + 5 : path + 10, peeled.hash, prio, oid->hash);
return 0; return 0;
} }
@ -413,8 +413,6 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
PARSE_OPT_OPTARG, NULL, (intptr_t) "-dirty"}, PARSE_OPT_OPTARG, NULL, (intptr_t) "-dirty"},
OPT_END(), OPT_END(),
}; };
struct each_ref_fn_sha1_adapter wrapped_get_name =
{get_name, NULL};
git_config(git_default_config, NULL); git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix, options, describe_usage, 0); argc = parse_options(argc, argv, prefix, options, describe_usage, 0);
@ -453,7 +451,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
} }
hashmap_init(&names, (hashmap_cmp_fn) commit_name_cmp, 0); hashmap_init(&names, (hashmap_cmp_fn) commit_name_cmp, 0);
for_each_rawref(each_ref_fn_adapter, &wrapped_get_name); for_each_rawref(get_name, NULL);
if (!names.size && !always) if (!names.size && !always)
die(_("No names found, cannot describe anything.")); die(_("No names found, cannot describe anything."));