]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-objects: use strcspn(3) in name_cmp_len()
authorRené Scharfe <l.s.r@web.de>
Sun, 5 Feb 2023 10:42:27 +0000 (11:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 6 Feb 2023 22:31:11 +0000 (14:31 -0800)
Call strcspn(3) to find the length of a string terminated by NUL, NL or
slash instead of open-coding it.  Adopt its return type, size_t, to
support strings of arbitrary length.  Use that type in callers as well
for variables and function parameters that receive the return value.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c

index 573d0b20b76b5115c99781b28f65ae1b5d7d8dc3..206c9a35a95cc6cfe8943deee305d176fae2e76d 100644 (file)
@@ -1708,17 +1708,14 @@ static void pbase_tree_put(struct pbase_tree_cache *cache)
        free(cache);
 }
 
-static int name_cmp_len(const char *name)
+static size_t name_cmp_len(const char *name)
 {
-       int i;
-       for (i = 0; name[i] && name[i] != '\n' && name[i] != '/'; i++)
-               ;
-       return i;
+       return strcspn(name, "\n/");
 }
 
 static void add_pbase_object(struct tree_desc *tree,
                             const char *name,
-                            int cmplen,
+                            size_t cmplen,
                             const char *fullname)
 {
        struct name_entry entry;
@@ -1743,7 +1740,7 @@ static void add_pbase_object(struct tree_desc *tree,
                        struct tree_desc sub;
                        struct pbase_tree_cache *tree;
                        const char *down = name+cmplen+1;
-                       int downlen = name_cmp_len(down);
+                       size_t downlen = name_cmp_len(down);
 
                        tree = pbase_tree_get(&entry.oid);
                        if (!tree)
@@ -1795,7 +1792,7 @@ static int check_pbase_path(unsigned hash)
 static void add_preferred_base_object(const char *name)
 {
        struct pbase_tree *it;
-       int cmplen;
+       size_t cmplen;
        unsigned hash = pack_name_hash(name);
 
        if (!num_preferred_base || check_pbase_path(hash))