ref-filter: use QSORT_S in ref_array_sort()
Pass the array of sort keys to compare_refs() via the context parameter of qsort_s() instead of using a global variable; that's cleaner and simpler. If ref_array_sort() is to be called from multiple parallel threads then care still needs to be taken that the global variable used_atom is not modified concurrently. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5ebd9472a4
commit
83fc4d64fe
@ -1555,8 +1555,7 @@ static int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a, stru
|
|||||||
return (s->reverse) ? -cmp : cmp;
|
return (s->reverse) ? -cmp : cmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ref_sorting *ref_sorting;
|
static int compare_refs(const void *a_, const void *b_, void *ref_sorting)
|
||||||
static int compare_refs(const void *a_, const void *b_)
|
|
||||||
{
|
{
|
||||||
struct ref_array_item *a = *((struct ref_array_item **)a_);
|
struct ref_array_item *a = *((struct ref_array_item **)a_);
|
||||||
struct ref_array_item *b = *((struct ref_array_item **)b_);
|
struct ref_array_item *b = *((struct ref_array_item **)b_);
|
||||||
@ -1572,8 +1571,7 @@ static int compare_refs(const void *a_, const void *b_)
|
|||||||
|
|
||||||
void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
|
void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
|
||||||
{
|
{
|
||||||
ref_sorting = sorting;
|
QSORT_S(array->items, array->nr, compare_refs, sorting);
|
||||||
QSORT(array->items, array->nr, compare_refs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void append_literal(const char *cp, const char *ep, struct ref_formatting_state *state)
|
static void append_literal(const char *cp, const char *ep, struct ref_formatting_state *state)
|
||||||
|
Loading…
Reference in New Issue
Block a user