commit-reach: use size_t
to track indices when computing merge bases
The functions `repo_get_merge_bases_many()` and friends accepts an array of commits as well as a parameter that indicates how large that array is. This parameter is using a signed integer, which leads to a couple of warnings with -Wsign-compare. Refactor the code to use `size_t` to track indices instead and adapt callers accordingly. While most callers are trivial, there are two callers that require a bit more scrutiny: - builtin/merge-base.c:show_merge_base() subtracts `1` from the `rev_nr` before calling `repo_get_merge_bases_many_dirty()`, so if the variable was `0` it would wrap. This code is fine though because its only caller will execute that code only when `argc >= 2`, and it follows that `rev_nr >= 2`, as well. - bisect.ccheck_merge_bases() similarly subtracts `1` from `rev_nr`. Again, there is only a single caller that populates `rev_nr` with `good_revs.nr`. And because a bisection always requires at least one good revision it follws that `rev_nr >= 1`. Mark the file as -Wsign-compare-clean. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
455ac07021
commit
5e7fe8a7b8
2
bisect.c
2
bisect.c
@ -855,7 +855,7 @@ static void handle_skipped_merge_base(const struct object_id *mb)
|
||||
* for early success, this will be converted back to 0 in
|
||||
* check_good_are_ancestors_of_bad().
|
||||
*/
|
||||
static enum bisect_error check_merge_bases(int rev_nr, struct commit **rev, int no_checkout)
|
||||
static enum bisect_error check_merge_bases(size_t rev_nr, struct commit **rev, int no_checkout)
|
||||
{
|
||||
enum bisect_error res = BISECT_OK;
|
||||
struct commit_list *result = NULL;
|
||||
|
Reference in New Issue
Block a user