]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/log: use `size_t` to track indices
authorPatrick Steinhardt <ps@pks.im>
Fri, 27 Dec 2024 10:46:26 +0000 (11:46 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Dec 2024 16:11:46 +0000 (08:11 -0800)
Similar as with the preceding commit, adapt "builtin/log.c" so that it
tracks array indices via `size_t` instead of using signed integers. This
fixes a couple of -Wsign-compare warnings and prepares the code for
a similar refactoring of `repo_get_merge_bases_many()` in a subsequent
commit.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/log.c

index 75e1b34123b348f57334d5592879398064de246e..805b2355d964915732edf5928d54fb6d06e394d4 100644 (file)
@@ -1746,11 +1746,12 @@ struct base_tree_info {
 
 static struct commit *get_base_commit(const struct format_config *cfg,
                                      struct commit **list,
-                                     int total)
+                                     size_t total)
 {
        struct commit *base = NULL;
        struct commit **rev;
-       int i = 0, rev_nr = 0, auto_select, die_on_failure, ret;
+       int auto_select, die_on_failure, ret;
+       size_t i = 0, rev_nr = 0;
 
        switch (cfg->auto_base) {
        case AUTO_BASE_NEVER:
@@ -1885,13 +1886,12 @@ define_commit_slab(commit_base, int);
 static void prepare_bases(struct base_tree_info *bases,
                          struct commit *base,
                          struct commit **list,
-                         int total)
+                         size_t total)
 {
        struct commit *commit;
        struct rev_info revs;
        struct diff_options diffopt;
        struct commit_base commit_base;
-       int i;
 
        if (!base)
                return;
@@ -1906,7 +1906,7 @@ static void prepare_bases(struct base_tree_info *bases,
        repo_init_revisions(the_repository, &revs, NULL);
        revs.max_parents = 1;
        revs.topo_order = 1;
-       for (i = 0; i < total; i++) {
+       for (size_t i = 0; i < total; i++) {
                list[i]->object.flags &= ~UNINTERESTING;
                add_pending_object(&revs, &list[i]->object, "rev_list");
                *commit_base_at(&commit_base, list[i]) = 1;
@@ -2007,7 +2007,7 @@ int cmd_format_patch(int argc,
        struct rev_info rev;
        char *to_free = NULL;
        struct setup_revision_opt s_r_opt;
-       int nr = 0, total, i;
+       size_t nr = 0, total, i;
        int use_stdout = 0;
        int start_number = -1;
        int just_numbers = 0;
@@ -2500,11 +2500,14 @@ int cmd_format_patch(int argc,
 
        if (show_progress)
                progress = start_delayed_progress(_("Generating patches"), total);
-       while (0 <= --nr) {
+       for (i = 0; i < nr; i++) {
+               size_t idx = nr - i - 1;
                int shown;
-               display_progress(progress, total - nr);
-               commit = list[nr];
-               rev.nr = total - nr + (start_number - 1);
+
+               display_progress(progress, total - idx);
+               commit = list[idx];
+               rev.nr = total - idx + (start_number - 1);
+
                /* Make the second and subsequent mails replies to the first */
                if (cfg.thread) {
                        /* Have we already had a message ID? */