From: Jeff Smith Date: Wed, 24 May 2017 05:15:27 +0000 (-0500) Subject: blame: wrap blame_sort and compare_blame_final X-Git-Tag: v2.14.0-rc0~108^2~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/78b06e66be7806e7fa092c96a47be95984e7aee6 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 Signed-off-by: Junio C Hamano --- diff --git a/builtin/blame.c b/builtin/blame.c index d05907b86c..61fd5b477a 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -328,12 +328,6 @@ static int compare_blame_suspect(const void *p1, const void *p2) 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, const void *b, void *c) @@ -396,6 +390,12 @@ struct blame_scoreboard { 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 *); /* @@ -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) { - blamed = blame_sort(blamed, compare_blame_suspect); + blamed = llist_mergesort(blamed, get_next_blame, set_next_blame, + compare_blame_suspect); while (blamed) { struct blame_origin *porigin = blamed->suspect; @@ -2922,7 +2923,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix) if (incremental) return 0; - sb.ent = blame_sort(sb.ent, compare_blame_final); + blame_sort_final(&sb); blame_coalesce(&sb);