bisect.c: use commit-slab for commit weight instead of commit->util
It's done so that commit->util can be removed. See more explanation in the commit that removes commit->util. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
87be252333
commit
bb408ac95d
12
bisect.c
12
bisect.c
|
@ -12,6 +12,7 @@
|
||||||
#include "bisect.h"
|
#include "bisect.h"
|
||||||
#include "sha1-array.h"
|
#include "sha1-array.h"
|
||||||
#include "argv-array.h"
|
#include "argv-array.h"
|
||||||
|
#include "commit-slab.h"
|
||||||
|
|
||||||
static struct oid_array good_revs;
|
static struct oid_array good_revs;
|
||||||
static struct oid_array skipped_revs;
|
static struct oid_array skipped_revs;
|
||||||
|
@ -70,16 +71,19 @@ static void clear_distance(struct commit_list *list)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define_commit_slab(commit_weight, int *);
|
||||||
|
static struct commit_weight commit_weight;
|
||||||
|
|
||||||
#define DEBUG_BISECT 0
|
#define DEBUG_BISECT 0
|
||||||
|
|
||||||
static inline int weight(struct commit_list *elem)
|
static inline int weight(struct commit_list *elem)
|
||||||
{
|
{
|
||||||
return *((int*)(elem->item->util));
|
return **commit_weight_at(&commit_weight, elem->item);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void weight_set(struct commit_list *elem, int weight)
|
static inline void weight_set(struct commit_list *elem, int weight)
|
||||||
{
|
{
|
||||||
*((int*)(elem->item->util)) = weight;
|
**commit_weight_at(&commit_weight, elem->item) = weight;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int count_interesting_parents(struct commit *commit)
|
static int count_interesting_parents(struct commit *commit)
|
||||||
|
@ -265,7 +269,7 @@ static struct commit_list *do_find_bisection(struct commit_list *list,
|
||||||
struct commit *commit = p->item;
|
struct commit *commit = p->item;
|
||||||
unsigned flags = commit->object.flags;
|
unsigned flags = commit->object.flags;
|
||||||
|
|
||||||
p->item->util = &weights[n++];
|
*commit_weight_at(&commit_weight, p->item) = &weights[n++];
|
||||||
switch (count_interesting_parents(commit)) {
|
switch (count_interesting_parents(commit)) {
|
||||||
case 0:
|
case 0:
|
||||||
if (!(flags & TREESAME)) {
|
if (!(flags & TREESAME)) {
|
||||||
|
@ -372,6 +376,7 @@ void find_bisection(struct commit_list **commit_list, int *reaches,
|
||||||
int *weights;
|
int *weights;
|
||||||
|
|
||||||
show_list("bisection 2 entry", 0, 0, *commit_list);
|
show_list("bisection 2 entry", 0, 0, *commit_list);
|
||||||
|
init_commit_weight(&commit_weight);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Count the number of total and tree-changing items on the
|
* Count the number of total and tree-changing items on the
|
||||||
|
@ -412,6 +417,7 @@ void find_bisection(struct commit_list **commit_list, int *reaches,
|
||||||
}
|
}
|
||||||
free(weights);
|
free(weights);
|
||||||
*commit_list = best;
|
*commit_list = best;
|
||||||
|
clear_commit_weight(&commit_weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int register_ref(const char *refname, const struct object_id *oid,
|
static int register_ref(const char *refname, const struct object_id *oid,
|
||||||
|
|
Loading…
Reference in New Issue