mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
blame: wrap blame_sort and compare_blame_final
The new method's interface is marginally cleaner than blame_sort, and will avoid the need to expose the compare_blame_final method. Signed-off-by: Jeff Smith <whydoubt@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8c59921dbf
commit
78b06e66be
|
@ -328,12 +328,6 @@ static int compare_blame_suspect(const void *p1, const void *p2)
|
||||||
return s1->s_lno > s2->s_lno ? 1 : -1;
|
return s1->s_lno > s2->s_lno ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct blame_entry *blame_sort(struct blame_entry *head,
|
|
||||||
int (*compare_fn)(const void *, const void *))
|
|
||||||
{
|
|
||||||
return llist_mergesort (head, get_next_blame, set_next_blame, compare_fn);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int compare_commits_by_reverse_commit_date(const void *a,
|
static int compare_commits_by_reverse_commit_date(const void *a,
|
||||||
const void *b,
|
const void *b,
|
||||||
void *c)
|
void *c)
|
||||||
|
@ -396,6 +390,12 @@ struct blame_scoreboard {
|
||||||
void *found_guilty_entry_data;
|
void *found_guilty_entry_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void blame_sort_final(struct blame_scoreboard *sb)
|
||||||
|
{
|
||||||
|
sb->ent = llist_mergesort(sb->ent, get_next_blame, set_next_blame,
|
||||||
|
compare_blame_final);
|
||||||
|
}
|
||||||
|
|
||||||
static void sanity_check_refcnt(struct blame_scoreboard *);
|
static void sanity_check_refcnt(struct blame_scoreboard *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1378,7 +1378,8 @@ static int num_scapegoats(struct rev_info *revs, struct commit *commit, int reve
|
||||||
*/
|
*/
|
||||||
static void distribute_blame(struct blame_scoreboard *sb, struct blame_entry *blamed)
|
static void distribute_blame(struct blame_scoreboard *sb, struct blame_entry *blamed)
|
||||||
{
|
{
|
||||||
blamed = blame_sort(blamed, compare_blame_suspect);
|
blamed = llist_mergesort(blamed, get_next_blame, set_next_blame,
|
||||||
|
compare_blame_suspect);
|
||||||
while (blamed)
|
while (blamed)
|
||||||
{
|
{
|
||||||
struct blame_origin *porigin = blamed->suspect;
|
struct blame_origin *porigin = blamed->suspect;
|
||||||
|
@ -2922,7 +2923,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
|
||||||
if (incremental)
|
if (incremental)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
sb.ent = blame_sort(sb.ent, compare_blame_final);
|
blame_sort_final(&sb);
|
||||||
|
|
||||||
blame_coalesce(&sb);
|
blame_coalesce(&sb);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue