From: Junio C Hamano Date: Wed, 21 Mar 2007 06:37:51 +0000 (-0700) Subject: blame: cmp_suspect is not "cmp" anymore. X-Git-Tag: v1.5.1-rc2~41 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=171dccd511bb4642e4491dc5115549b67a859a5b;p=git.git blame: cmp_suspect is not "cmp" anymore. The earlier round makes the function return "is it different" and it does not return a value suitable for sorting anymore. Reverse the logic to return "are they the same suspect" instead, and rename it to "same_suspect()". Signed-off-by: Junio C Hamano --- diff --git a/builtin-blame.c b/builtin-blame.c index 104521e67..60ec5354f 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -180,15 +180,15 @@ struct scoreboard { int *lineno; }; -static int cmp_suspect(struct origin *a, struct origin *b) +static inline int same_suspect(struct origin *a, struct origin *b) { - if (a->commit != b->commit) + if (a == b) return 1; - return strcmp(a->path, b->path); + if (a->commit != b->commit) + return 0; + return !strcmp(a->path, b->path); } -#define cmp_suspect(a, b) ( ((a)==(b)) ? 0 : cmp_suspect(a,b) ) - static void sanity_check_refcnt(struct scoreboard *); /* @@ -201,7 +201,7 @@ static void coalesce(struct scoreboard *sb) struct blame_entry *ent, *next; for (ent = sb->ent; ent && (next = ent->next); ent = next) { - if (!cmp_suspect(ent->suspect, next->suspect) && + if (same_suspect(ent->suspect, next->suspect) && ent->guilty == next->guilty && ent->s_lno + ent->num_lines == next->s_lno) { ent->num_lines += next->num_lines; @@ -774,7 +774,7 @@ static int find_last_in_target(struct scoreboard *sb, struct origin *target) int last_in_target = -1; for (e = sb->ent; e; e = e->next) { - if (e->guilty || cmp_suspect(e->suspect, target)) + if (e->guilty || !same_suspect(e->suspect, target)) continue; if (last_in_target < e->s_lno + e->num_lines) last_in_target = e->s_lno + e->num_lines; @@ -794,7 +794,7 @@ static void blame_chunk(struct scoreboard *sb, struct blame_entry *e; for (e = sb->ent; e; e = e->next) { - if (e->guilty || cmp_suspect(e->suspect, target)) + if (e->guilty || !same_suspect(e->suspect, target)) continue; if (same <= e->s_lno) continue; @@ -969,7 +969,7 @@ static int find_move_in_parent(struct scoreboard *sb, while (made_progress) { made_progress = 0; for (e = sb->ent; e; e = e->next) { - if (e->guilty || cmp_suspect(e->suspect, target)) + if (e->guilty || !same_suspect(e->suspect, target)) continue; find_copy_in_blob(sb, e, parent, split, &file_p); if (split[1].suspect && @@ -1001,12 +1001,12 @@ static struct blame_list *setup_blame_list(struct scoreboard *sb, struct blame_list *blame_list = NULL; for (e = sb->ent, num_ents = 0; e; e = e->next) - if (!e->guilty && !cmp_suspect(e->suspect, target)) + if (!e->guilty && same_suspect(e->suspect, target)) num_ents++; if (num_ents) { blame_list = xcalloc(num_ents, sizeof(struct blame_list)); for (e = sb->ent, i = 0; e; e = e->next) - if (!e->guilty && !cmp_suspect(e->suspect, target)) + if (!e->guilty && same_suspect(e->suspect, target)) blame_list[i++].ent = e; } *num_ents_p = num_ents; @@ -1136,7 +1136,7 @@ static void pass_whole_blame(struct scoreboard *sb, origin->file.ptr = NULL; } for (e = sb->ent; e; e = e->next) { - if (cmp_suspect(e->suspect, origin)) + if (!same_suspect(e->suspect, origin)) continue; origin_incref(porigin); origin_decref(e->suspect); @@ -1442,7 +1442,7 @@ static void assign_blame(struct scoreboard *sb, struct rev_info *revs, int opt) /* Take responsibility for the remaining entries */ for (ent = sb->ent; ent; ent = ent->next) - if (!cmp_suspect(ent->suspect, suspect)) + if (same_suspect(ent->suspect, suspect)) found_guilty_entry(ent); origin_decref(suspect);