]> git.ipfire.org Git - thirdparty/git.git/commitdiff
decorate: fix sign comparison warnings
authorArnav Bhate <bhatearnav@gmail.com>
Mon, 10 Mar 2025 18:08:53 +0000 (23:38 +0530)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Mar 2025 20:21:13 +0000 (13:21 -0700)
There are multiple instances where ints have been initialized with
values of unsigned ints, and where negative values don't mean anything.
When such ints are compared with unsigned ints, it causes sign comparison
warnings.

Also, some of these are used just as stand-ins for their initial
values, never being modified, thus obscuring the specific conditions
under which certain operations happen.

Replace int with unsigned int for 2 variables, and replace the
intermediate variables with their initial values for 2 other variables.

Signed-off-by: Arnav Bhate <bhatearnav@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
decorate.c

index e161e13772891f6566b1063f7b7410e6adaad7bc..9f24925263ae2931c6bd09daaa84e84c63320aea 100644 (file)
@@ -3,8 +3,6 @@
  * data.
  */
 
-#define DISABLE_SIGN_COMPARE_WARNINGS
-
 #include "git-compat-util.h"
 #include "object.h"
 #include "decorate.h"
@@ -16,9 +14,8 @@ static unsigned int hash_obj(const struct object *obj, unsigned int n)
 
 static void *insert_decoration(struct decoration *n, const struct object *base, void *decoration)
 {
-       int size = n->size;
        struct decoration_entry *entries = n->entries;
-       unsigned int j = hash_obj(base, size);
+       unsigned int j = hash_obj(base, n->size);
 
        while (entries[j].base) {
                if (entries[j].base == base) {
@@ -26,7 +23,7 @@ static void *insert_decoration(struct decoration *n, const struct object *base,
                        entries[j].decoration = decoration;
                        return old;
                }
-               if (++j >= size)
+               if (++j >= n->size)
                        j = 0;
        }
        entries[j].base = base;
@@ -37,8 +34,8 @@ static void *insert_decoration(struct decoration *n, const struct object *base,
 
 static void grow_decoration(struct decoration *n)
 {
-       int i;
-       int old_size = n->size;
+       unsigned int i;
+       unsigned int old_size = n->size;
        struct decoration_entry *old_entries = n->entries;
 
        n->size = (old_size + 1000) * 3 / 2;
@@ -59,9 +56,7 @@ static void grow_decoration(struct decoration *n)
 void *add_decoration(struct decoration *n, const struct object *obj,
                void *decoration)
 {
-       int nr = n->nr + 1;
-
-       if (nr > n->size * 2 / 3)
+       if ((n->nr + 1) > n->size * 2 / 3)
                grow_decoration(n);
        return insert_decoration(n, obj, decoration);
 }