string-list: change "string_list_find_insert_index" return type to "size_t"
PATCH 3/4 string-list: change "string_list_find_insert_index" return type to "size_t"
As "string_list_find_insert_index" is a simple wrapper of "get_entry_index", we could simply change its return type to "size_t".
Update all callers to use size_t variables for storing the return value. The tricky fix is the loop condition in "mailmap.c" to properly handle "size_t" underflow by changing from 0 <= --i to i-- > 0.
Remove "DISABLE_SIGN_COMPARE_WARNINGS" from "mailmap.c" as it's no longer needed with the proper unsigned types.
Signed-off-by shejialuo <[email protected]>
--- add-interactive.c | 2 +- mailmap.c | 5 ++--- refs.c | 4 +--- string-list.c | 4 ++-- string-list.h | 4 ++-- 5 files changed, 8 insertions(+), 11 deletions(-)
add-interactive.c +1 -1
@@ -222,7 +222,7 @@ static void find_unique_prefixes(struct prefix_item_list *list)static ssize_t find_unique (const char *string,struct prefix_item_list *list) {int exact_match; -int index =string_list_find_insert_index (&list->sorted, string, &exact_match); +size_t index =string_list_find_insert_index (&list->sorted, string, &exact_match);struct string_list_item *item;if (list->items.nr != list->sorted.nr)
mailmap.c +2 -3
@@ -1,5 +1,4 @@#define USE_THE_REPOSITORY_VARIABLE -#define DISABLE_SIGN_COMPARE_WARNINGS #include "git-compat-util.h" #include "environment.h"
@@ -244,7 +243,7 @@ static struct string_list_item *lookup_prefix(struct string_list *map, const char *string, size_t len) { int exact_match; -int i =string_list_find_insert_index (map, string, &exact_match); +size_t i =string_list_find_insert_index (map, string, &exact_match);if (exact_match) {if (!string[len])return &map->items[i];
@@ -266,7 +265,7 @@ static struct string_list_item *lookup_prefix(struct string_list *map,* overlong key would be inserted, which must come after the * real location of the key if one exists. */ -while (0 <= --i && i < map->nr) { +while (i-- >0 && i < map->nr) {int cmp =strncasecmp (map->items[i].string, string, len);if (cmp <0 )/*
refs.c +1 -3
@@ -1688,8 +1688,6 @@ const char *find_descendant_ref(const char *dirname, const struct string_list *extras, const struct string_list *skip) { - int pos; - if (!extras) return NULL;
@@ -1699,7 +1697,7 @@ const char *find_descendant_ref(const char *dirname,* with dirname (remember, dirname includes the trailing * slash) and is not in skip, then we have a conflict. */ -for (pos =string_list_find_insert_index (extras, dirname,NULL ); +for (size_t pos =string_list_find_insert_index (extras, dirname,NULL ); pos < extras->nr; pos++) {const char *extra_refname = extras->items[pos].string;
string-list.c +2 -2
@@ -91,8 +91,8 @@ int string_list_has_string(const struct string_list *list, const char *string)return exact_match; } -int string_list_find_insert_index (const struct string_list *list,const char *string, -int *exact_match) +size_t string_list_find_insert_index (const struct string_list *list,const char *string, +int *exact_match) {return get_entry_index (list, string, exact_match); }
string-list.h +2 -2
@@ -173,8 +173,8 @@ void string_list_remove_empty_items(struct string_list *list, int free_util);/** Determine if the string_list has a given string or not. */ int string_list_has_string (const struct string_list *list,const char *string); -int string_list_find_insert_index (const struct string_list *list,const char *string, -int *exact_match); +size_t string_list_find_insert_index (const struct string_list *list,const char *string, +int *exact_match);/** * Insert a new element to the string_list. The returned pointer can
Signature · 1 line
2.51.0