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
@ -1,5 +1,4 @@
|
||||
#define USE_THE_REPOSITORY_VARIABLE
|
||||
#define DISABLE_SIGN_COMPARE_WARNINGS
|
||||
|
||||
#include "git-compat-util.h"
|
||||
#include "commit.h"
|
||||
@ -421,7 +420,7 @@ static int remove_redundant(struct repository *r, struct commit **array,
|
||||
|
||||
static int get_merge_bases_many_0(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
int cleanup,
|
||||
struct commit_list **result)
|
||||
@ -469,7 +468,7 @@ static int get_merge_bases_many_0(struct repository *r,
|
||||
|
||||
int repo_get_merge_bases_many(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result)
|
||||
{
|
||||
@ -478,7 +477,7 @@ int repo_get_merge_bases_many(struct repository *r,
|
||||
|
||||
int repo_get_merge_bases_many_dirty(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user