]> git.ipfire.org Git - thirdparty/git.git/commitdiff
string-list: remove unused "insert_at" parameter from add_entry
authorshejialuo <shejialuo@gmail.com>
Sun, 29 Jun 2025 04:27:49 +0000 (12:27 +0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Jul 2025 15:07:45 +0000 (08:07 -0700)
In "add_entry", we accept "insert_at" parameter which must be either -1
(auto) or between 0 and `list->nr` inclusive. Any other value is
invalid. When caller specify any invalid "insert_at" value, we won't
check the range and move the element, which would definitely cause the
trouble.

However, we only use "add_entry" in "string_list_insert" function and we
always pass the "-1" for "insert_at" parameter. So, we never use this
parameter to insert element in a user specified position.

And we should know why there is such code path in the first place. We
used to have another function "string_list_insert_at_index()", which
uses the extra "insert_at" parameter. And in f8c4ab611a (string_list:
remove string_list_insert_at_index() from its API, 2014-11-24), we
remove this function but we don't clean all the code path.

Let's simply delete this parameter as we'd better use "strmap" for such
functionality.

Signed-off-by: shejialuo <shejialuo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
string-list.c

index 801ece0cbad39eb94e51c2396773490b16d5068c..8540c29bc9e255d3cbf87ef6459c77e48b87bc88 100644 (file)
@@ -41,10 +41,10 @@ static int get_entry_index(const struct string_list *list, const char *string,
 }
 
 /* returns -1-index if already exists */
-static int add_entry(int insert_at, struct string_list *list, const char *string)
+static int add_entry(struct string_list *list, const char *string)
 {
        int exact_match = 0;
-       int index = insert_at != -1 ? insert_at : get_entry_index(list, string, &exact_match);
+       int index = get_entry_index(list, string, &exact_match);
 
        if (exact_match)
                return -1 - index;
@@ -63,7 +63,7 @@ static int add_entry(int insert_at, struct string_list *list, const char *string
 
 struct string_list_item *string_list_insert(struct string_list *list, const char *string)
 {
-       int index = add_entry(-1, list, string);
+       int index = add_entry(list, string);
 
        if (index < 0)
                index = -1 - index;