From: Christian Couder Date: Sat, 9 May 2009 15:55:43 +0000 (+0200) Subject: bisect: make skipped array functions more generic X-Git-Tag: v1.6.4-rc0~24^2~14 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=aaaff9e2d29a68c23a416bcc5f3f382504770bf8;p=git.git bisect: make skipped array functions more generic So they can be used on the good array too. This is done by renaming many functions and some variables to remove "skip" in the name, and by adding a "struct sha1_array *array" argument where needed. While at it, make the second argument to "lookup_sha1_array" const. It becomes "const unsigned char *sha1". Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- diff --git a/bisect.c b/bisect.c index 9e01b9e0e..77edecaae 100644 --- a/bisect.c +++ b/bisect.c @@ -479,27 +479,26 @@ void read_bisect_paths(struct argv_array *array) fclose(fp); } -static int skipcmp(const void *a, const void *b) +static int array_cmp(const void *a, const void *b) { return hashcmp(a, b); } -static void prepare_skipped(void) +static void sort_sha1_array(struct sha1_array *array) { - qsort(skipped_revs.sha1, skipped_revs.sha1_nr, - sizeof(*skipped_revs.sha1), skipcmp); + qsort(array->sha1, array->sha1_nr, sizeof(*array->sha1), array_cmp); } -static const unsigned char *skipped_sha1_access(size_t index, void *table) +static const unsigned char *sha1_access(size_t index, void *table) { - unsigned char (*skipped)[20] = table; - return skipped[index]; + unsigned char (*array)[20] = table; + return array[index]; } -static int lookup_skipped(unsigned char *sha1) +static int lookup_sha1_array(struct sha1_array *array, + const unsigned char *sha1) { - return sha1_pos(sha1, skipped_revs.sha1, skipped_revs.sha1_nr, - skipped_sha1_access); + return sha1_pos(sha1, array->sha1, array->sha1_nr, sha1_access); } struct commit_list *filter_skipped(struct commit_list *list, @@ -513,12 +512,13 @@ struct commit_list *filter_skipped(struct commit_list *list, if (!skipped_revs.sha1_nr) return list; - prepare_skipped(); + sort_sha1_array(&skipped_revs); while (list) { struct commit_list *next = list->next; list->next = NULL; - if (0 <= lookup_skipped(list->item->object.sha1)) { + if (0 <= lookup_sha1_array(&skipped_revs, + list->item->object.sha1)) { /* Move current to tried list */ *tried = list; tried = &list->next;