Skip to content

Commit

Permalink
sha1-name.c: remove the_repo from sort_ambiguous()
Browse files Browse the repository at this point in the history
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
pclouds authored and gitster committed Apr 16, 2019
1 parent 301b8c7 commit fae2ae4
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions sha1-name.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,10 +383,11 @@ static int collect_ambiguous(const struct object_id *oid, void *data)
return 0;
}

static struct repository *sort_ambiguous_repo;
static int sort_ambiguous(const void *a, const void *b)
{
int a_type = oid_object_info(the_repository, a, NULL);
int b_type = oid_object_info(the_repository, b, NULL);
int a_type = oid_object_info(sort_ambiguous_repo, a, NULL);
int b_type = oid_object_info(sort_ambiguous_repo, b, NULL);
int a_type_sort;
int b_type_sort;

Expand All @@ -411,6 +412,14 @@ static int sort_ambiguous(const void *a, const void *b)
return a_type_sort > b_type_sort ? 1 : -1;
}

static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a)
{
/* mutex will be needed if this code is to be made thread safe */
sort_ambiguous_repo = r;
QSORT(a->oid, a->nr, sort_ambiguous);
sort_ambiguous_repo = NULL;
}

static enum get_oid_result get_short_oid(const char *name, int len,
struct object_id *oid,
unsigned flags)
Expand Down Expand Up @@ -458,7 +467,7 @@ static enum get_oid_result get_short_oid(const char *name, int len,

advise(_("The candidates are:"));
for_each_abbrev(ds.hex_pfx, collect_ambiguous, &collect);
QSORT(collect.oid, collect.nr, sort_ambiguous);
sort_ambiguous_oid_array(the_repository, &collect);

if (oid_array_for_each(&collect, show_ambiguous_object, &ds))
BUG("show_ambiguous_object shouldn't return non-zero");
Expand Down

0 comments on commit fae2ae4

Please sign in to comment.