[PATCH v2 18/49] builtin/repack.c: avoid unnecessary numeric casts in existing_packs

Taylor Blau
2025-10-15T22:28:15Z

There are a couple of spots that cause warnings within the
existing_packs API without DISABLE_SIGN_COMPARE_WARNINGS under
DEVELOPER=1 mode.

In both cases, we have int values that are being compared against size_t
ones. Neither of these two cases are incorrect, and the cast is
completely OK in practice. But both are unnecessary, since:

- in existing_packs_mark_for_deletion_1(), 'hexsz' should be defined as
a size_t anyway, since algop->hexsz is.

- in existing_packs_collect(), 'i' should be defined as a size_t since
it is counting up to the value of a string_list's 'nr' field.

(This patch is a little bit of noise, but I would rather see us squelch
these warnings ahead of moving the existing_packs API into a separate
compilation unit to avoid having to define DISABLE_SIGN_COMPARE_WARNINGS
in repack.c.)

Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
builtin/repack.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/repack.c b/builtin/repack.c
index c5a88eda12..e13943b637 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -156,7 +156,7 @@ static void existing_packs_mark_for_deletion_1(const struct git_hash_algo *algop
struct string_list *list)
{
struct string_list_item *item;
- const int hexsz = algop->hexsz;
+ const size_t hexsz = algop->hexsz;

for_each_string_list_item(item, list) {
char *sha1;
@@ -250,7 +250,7 @@ static void existing_packs_collect(struct existing_packs *existing,
struct strbuf buf = STRBUF_INIT;

for (p = packfile_store_get_all_packs(packs); p; p = p->next) {
- int i;
+ size_t i;
const char *base;

if (!p->pack_local)
--
2.51.0.540.ga7423965ad8