rev-list --bisect: Bisection "distance" clean up.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2007-09-17 05:28:36 +02:00 committed by Junio C Hamano
parent 77c11e064c
commit 53271411e7

View File

@ -189,7 +189,7 @@ static int count_interesting_parents(struct commit *commit)
return count;
}
static inline int halfway(struct commit_list *p, int distance, int nr)
static inline int halfway(struct commit_list *p, int nr)
{
/*
* Don't short-cut something we are not going to return!
@ -202,8 +202,7 @@ static inline int halfway(struct commit_list *p, int distance, int nr)
* 2 and 3 are halfway of 5.
* 3 is halfway of 6 but 2 and 4 are not.
*/
distance *= 2;
switch (distance - nr) {
switch (2 * weight(p) - nr) {
case -1: case 0: case 1:
return 1;
default:
@ -295,7 +294,7 @@ static struct commit_list *best_bisection(struct commit_list *list, int nr)
static struct commit_list *do_find_bisection(struct commit_list *list,
int nr, int *weights)
{
int n, counted, distance;
int n, counted;
struct commit_list *p;
counted = 0;
@ -346,15 +345,13 @@ static struct commit_list *do_find_bisection(struct commit_list *list,
for (p = list; p; p = p->next) {
if (p->item->object.flags & UNINTERESTING)
continue;
n = weight(p);
if (n != -2)
if (weight(p) != -2)
continue;
distance = count_distance(p);
weight_set(p, count_distance(p));
clear_distance(list);
weight_set(p, distance);
/* Does it happen to be at exactly half-way? */
if (halfway(p, distance, nr))
if (halfway(p, nr))
return p;
counted++;
}
@ -392,8 +389,7 @@ static struct commit_list *do_find_bisection(struct commit_list *list,
weight_set(p, weight(q));
/* Does it happen to be at exactly half-way? */
distance = weight(p);
if (halfway(p, distance, nr))
if (halfway(p, nr))
return p;
}
}