On 03/03, Nguyễn Thái Ngọc Duy wrote:
> From: Stefan Beller
>
> Signed-off-by: Stefan Beller
> Signed-off-by: Junio C Hamano
> Signed-off-by: Nguyễn Thái Ngọc Duy
Looks good.
> ---
> builtin/am.c | 2 +-
> builtin/clone.c| 2 +-
> builtin/fetch.c| 2 +-
> builtin/merge.c| 2 +-
> builtin/receive-pack.c | 2 +-
> object.c | 7 +++
> packfile.c | 4 ++--
> packfile.h | 2 +-
> 8 files changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/builtin/am.c b/builtin/am.c
> index 5bdd2d7578..4762a702e3 100644
> --- a/builtin/am.c
> +++ b/builtin/am.c
> @@ -1859,7 +1859,7 @@ static void am_run(struct am_state *state, int resume)
>*/
> if (!state->rebasing) {
> am_destroy(state);
> - close_all_packs();
> + close_all_packs(&the_repository->objects);
> run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
> }
> }
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 101c27a593..13cfaa6488 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -1217,7 +1217,7 @@ int cmd_clone(int argc, const char **argv, const char
> *prefix)
> transport_disconnect(transport);
>
> if (option_dissociate) {
> - close_all_packs();
> + close_all_packs(&the_repository->objects);
> dissociate_from_references();
> }
>
> diff --git a/builtin/fetch.c b/builtin/fetch.c
> index 8ee998ea2e..4d72efca78 100644
> --- a/builtin/fetch.c
> +++ b/builtin/fetch.c
> @@ -1478,7 +1478,7 @@ int cmd_fetch(int argc, const char **argv, const char
> *prefix)
>
> string_list_clear(&list, 0);
>
> - close_all_packs();
> + close_all_packs(&the_repository->objects);
>
> argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL);
> if (verbosity < 0)
> diff --git a/builtin/merge.c b/builtin/merge.c
> index 30264cfd7c..907ae44ab5 100644
> --- a/builtin/merge.c
> +++ b/builtin/merge.c
> @@ -411,7 +411,7 @@ static void finish(struct commit *head_commit,
>* We ignore errors in 'gc --auto', since the
>* user should see them.
>*/
> - close_all_packs();
> + close_all_packs(&the_repository->objects);
> run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
> }
> }
> diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
> index b7ce7c7f52..ac478b7b99 100644
> --- a/builtin/receive-pack.c
> +++ b/builtin/receive-pack.c
> @@ -2026,7 +2026,7 @@ int cmd_receive_pack(int argc, const char **argv, const
> char *prefix)
> proc.git_cmd = 1;
> proc.argv = argv_gc_auto;
>
> - close_all_packs();
> + close_all_packs(&the_repository->objects);
> if (!start_command(&proc)) {
> if (use_sideband)
> copy_to_sideband(proc.err, -1, NULL);
> diff --git a/object.c b/object.c
> index 83be6b1ecb..60ca76b285 100644
> --- a/object.c
> +++ b/object.c
> @@ -4,6 +4,7 @@
> #include "tree.h"
> #include "commit.h"
> #include "tag.h"
> +#include "packfile.h"
>
> static struct object **obj_hash;
> static int nr_objs, obj_hash_size;
> @@ -475,8 +476,6 @@ void raw_object_store_clear(struct raw_object_store *o)
> o->alt_odb_tail = NULL;
>
> INIT_LIST_HEAD(&o->packed_git_mru);
> - /*
> - * TODO: call close_all_packs once migrated to
> - * take an object store argument
> - */
> + close_all_packs(o);
> + o->packed_git = NULL;
> }
> diff --git a/packfile.c b/packfile.c
> index d3c4a12ae0..1e38334ba2 100644
> --- a/packfile.c
> +++ b/packfile.c
> @@ -310,11 +310,11 @@ static void close_pack(struct packed_git *p)
> close_pack_index(p);
> }
>
> -void close_all_packs(void)
> +void close_all_packs(struct raw_object_store *o)
> {
> struct packed_git *p;
>
> - for (p = the_repository->objects.packed_git; p; p = p->next)
> + for (p = o->packed_git; p; p = p->next)
> if (p->do_not_close)
> die("BUG: want to close pack marked 'do-not-close'");
> else
> diff --git a/packfile.h b/packfile.h
> index 76496226bb..5b1ce00f84 100644
> --- a/packfile.h
> +++ b/packfile.h
> @@ -66,7 +66,7 @@ extern void close_pack_index(struct packed_git *);
>
> extern unsigned char *use_pack(struct packed_git *, struct pack_window **,
> off_t, unsigned long *);
> extern void close_pack_windows(struct packed_git *);
> -extern void close_all_packs(void);
> +extern void close_all_packs(struct raw_object_store *o);
> extern void unuse_pack(struct pack_window **);
> extern void clear_delta_base_cache(void);
> extern struct packed_git *add_packed_git(const char *path, size_t path_len,
> int local);
> --
> 2.16.1.435.g8f24da2e1a
>
--
Brandon Williams