On 03/27, Stefan Beller wrote:
> Signed-off-by: Stefan Beller <[email protected]>
Looks good. At some point we may want to rename this function so that
it describes what it actually does as 'submodule_free' doesn't quite
describe that this clears a repository's submodule cache. But that's
beyond the scope of this.
> ---
> Documentation/technical/api-submodule-config.txt | 2 +-
> builtin/grep.c | 2 +-
> submodule-config.c | 6 +++---
> submodule-config.h | 2 +-
> t/helper/test-submodule-config.c | 2 +-
> unpack-trees.c | 2 +-
> 6 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/technical/api-submodule-config.txt
> b/Documentation/technical/api-submodule-config.txt
> index ee907c4a82..fb06089393 100644
> --- a/Documentation/technical/api-submodule-config.txt
> +++ b/Documentation/technical/api-submodule-config.txt
> @@ -38,7 +38,7 @@ Data Structures
> Functions
> ---------
>
> -`void submodule_free()`::
> +`void submodule_free(struct repository *r)`::
>
> Use these to free the internally cached values.
>
> diff --git a/builtin/grep.c b/builtin/grep.c
> index 789a89133a..8f04cde18e 100644
> --- a/builtin/grep.c
> +++ b/builtin/grep.c
> @@ -651,7 +651,7 @@ static int grep_objects(struct grep_opt *opt, const
> struct pathspec *pathspec,
>
> /* load the gitmodules file for this rev */
> if (recurse_submodules) {
> - submodule_free();
> + submodule_free(repo);
> gitmodules_config_oid(&real_obj->oid);
> }
> if (grep_object(opt, pathspec, real_obj, list->objects[i].name,
> list->objects[i].path,
> diff --git a/submodule-config.c b/submodule-config.c
> index 602ba8ca8b..a3efff1a34 100644
> --- a/submodule-config.c
> +++ b/submodule-config.c
> @@ -642,8 +642,8 @@ const struct submodule *submodule_from_cache(struct
> repository *repo,
> key, lookup_path);
> }
>
> -void submodule_free(void)
> +void submodule_free(struct repository *r)
> {
> - if (the_repository->submodule_cache)
> - submodule_cache_clear(the_repository->submodule_cache);
> + if (r->submodule_cache)
> + submodule_cache_clear(r->submodule_cache);
> }
> diff --git a/submodule-config.h b/submodule-config.h
> index a5503a5d17..df6bd6e6db 100644
> --- a/submodule-config.h
> +++ b/submodule-config.h
> @@ -46,6 +46,6 @@ extern const struct submodule *submodule_from_path(
> extern const struct submodule *submodule_from_cache(struct repository *repo,
> const struct object_id
> *treeish_name,
> const char *key);
> -extern void submodule_free(void);
> +extern void submodule_free(struct repository *r);
>
> #endif /* SUBMODULE_CONFIG_H */
> diff --git a/t/helper/test-submodule-config.c
> b/t/helper/test-submodule-config.c
> index f23db3b19a..9971c5e9dd 100644
> --- a/t/helper/test-submodule-config.c
> +++ b/t/helper/test-submodule-config.c
> @@ -64,7 +64,7 @@ int cmd_main(int argc, const char **argv)
> arg += 2;
> }
>
> - submodule_free();
> + submodule_free(the_repository);
>
> return 0;
> }
> diff --git a/unpack-trees.c b/unpack-trees.c
> index d5685891a5..05e5fa77eb 100644
> --- a/unpack-trees.c
> +++ b/unpack-trees.c
> @@ -290,7 +290,7 @@ static void load_gitmodules_file(struct index_state
> *index,
> if (!state && ce->ce_flags & CE_WT_REMOVE) {
> repo_read_gitmodules(the_repository);
> } else if (state && (ce->ce_flags & CE_UPDATE)) {
> - submodule_free();
> + submodule_free(the_repository);
> checkout_entry(ce, state, NULL);
> repo_read_gitmodules(the_repository);
> }
> --
> 2.17.0.rc1.321.gba9d0f2565-goog
>
--
Brandon Williams