]> git.ipfire.org Git - thirdparty/git.git/commitdiff
odb: drop forward declaration of `read_info_alternates()`
authorPatrick Steinhardt <ps@pks.im>
Thu, 11 Dec 2025 09:30:15 +0000 (10:30 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Dec 2025 09:39:37 +0000 (18:39 +0900)
Now that we have removed the mutual recursion in the preceding commit
it is not necessary anymore to have a forward declaration of the
`read_info_alternates()` function. Move the function and its
dependencies further up so that we can remove it.

Note that this commit also removes the function documentation of
`read_info_alternates()`. It's unclear what it's documenting, but it for
sure isn't documenting the modern behaviour of the function anymore.

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

diff --git a/odb.c b/odb.c
index 59944d46496e9c878499b9c39d5b6d0400c40e2e..dcf4a62cd2eaf2b9213fce6f6d277f49363f075d 100644 (file)
--- a/odb.c
+++ b/odb.c
@@ -132,77 +132,6 @@ out:
        return usable;
 }
 
-/*
- * Prepare alternate object database registry.
- *
- * The variable alt_odb_list points at the list of struct
- * odb_source.  The elements on this list come from
- * non-empty elements from colon separated ALTERNATE_DB_ENVIRONMENT
- * environment variable, and $GIT_OBJECT_DIRECTORY/info/alternates,
- * whose contents is similar to that environment variable but can be
- * LF separated.  Its base points at a statically allocated buffer that
- * contains "/the/directory/corresponding/to/.git/objects/...", while
- * its name points just after the slash at the end of ".git/objects/"
- * in the example above, and has enough space to hold all hex characters
- * of the object ID, an extra slash for the first level indirection, and
- * the terminating NUL.
- */
-static void read_info_alternates(const char *relative_base,
-                                struct strvec *out);
-
-static struct odb_source *odb_source_new(struct object_database *odb,
-                                        const char *path,
-                                        bool local)
-{
-       struct odb_source *source;
-
-       CALLOC_ARRAY(source, 1);
-       source->odb = odb;
-       source->local = local;
-       source->path = xstrdup(path);
-       source->loose = odb_source_loose_new(source);
-
-       return source;
-}
-
-static struct odb_source *odb_add_alternate_recursively(struct object_database *odb,
-                                                       const char *source,
-                                                       int depth)
-{
-       struct odb_source *alternate = NULL;
-       struct strvec sources = STRVEC_INIT;
-       khiter_t pos;
-       int ret;
-
-       if (!odb_is_source_usable(odb, source))
-               goto error;
-
-       alternate = odb_source_new(odb, source, false);
-
-       /* add the alternate entry */
-       *odb->sources_tail = alternate;
-       odb->sources_tail = &(alternate->next);
-
-       pos = kh_put_odb_path_map(odb->source_by_path, alternate->path, &ret);
-       if (!ret)
-               BUG("source must not yet exist");
-       kh_value(odb->source_by_path, pos) = alternate;
-
-       /* recursively add alternates */
-       read_info_alternates(alternate->path, &sources);
-       if (sources.nr && depth + 1 > 5) {
-               error(_("%s: ignoring alternate object stores, nesting too deep"),
-                     source);
-       } else {
-               for (size_t i = 0; i < sources.nr; i++)
-                       odb_add_alternate_recursively(odb, sources.v[i], depth + 1);
-       }
-
- error:
-       strvec_clear(&sources);
-       return alternate;
-}
-
 static void parse_alternates(const char *string,
                             int sep,
                             const char *relative_base,
@@ -288,6 +217,60 @@ static void read_info_alternates(const char *relative_base,
        free(path);
 }
 
+
+static struct odb_source *odb_source_new(struct object_database *odb,
+                                        const char *path,
+                                        bool local)
+{
+       struct odb_source *source;
+
+       CALLOC_ARRAY(source, 1);
+       source->odb = odb;
+       source->local = local;
+       source->path = xstrdup(path);
+       source->loose = odb_source_loose_new(source);
+
+       return source;
+}
+
+static struct odb_source *odb_add_alternate_recursively(struct object_database *odb,
+                                                       const char *source,
+                                                       int depth)
+{
+       struct odb_source *alternate = NULL;
+       struct strvec sources = STRVEC_INIT;
+       khiter_t pos;
+       int ret;
+
+       if (!odb_is_source_usable(odb, source))
+               goto error;
+
+       alternate = odb_source_new(odb, source, false);
+
+       /* add the alternate entry */
+       *odb->sources_tail = alternate;
+       odb->sources_tail = &(alternate->next);
+
+       pos = kh_put_odb_path_map(odb->source_by_path, alternate->path, &ret);
+       if (!ret)
+               BUG("source must not yet exist");
+       kh_value(odb->source_by_path, pos) = alternate;
+
+       /* recursively add alternates */
+       read_info_alternates(alternate->path, &sources);
+       if (sources.nr && depth + 1 > 5) {
+               error(_("%s: ignoring alternate object stores, nesting too deep"),
+                     source);
+       } else {
+               for (size_t i = 0; i < sources.nr; i++)
+                       odb_add_alternate_recursively(odb, sources.v[i], depth + 1);
+       }
+
+ error:
+       strvec_clear(&sources);
+       return alternate;
+}
+
 void odb_add_to_alternates_file(struct object_database *odb,
                                const char *dir)
 {