Show 134 quoted lines
>
> Signed-off-by: Derrick Stolee <derrickstolee@github.com>
> ---
> builtin/pack-objects.c | 6 +++---
> builtin/rev-list.c | 2 +-
> list-objects.c | 25 ++++++++-----------------
> list-objects.h | 12 ++++++++++--
> pack-bitmap.c | 6 +++---
> 5 files changed, 25 insertions(+), 26 deletions(-)
>
> diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
> index 57f2cf49696..0432ae1e499 100644
> --- a/builtin/pack-objects.c
> +++ b/builtin/pack-objects.c
> @@ -3778,9 +3778,9 @@ static void get_object_list(int ac, const char **av)
>
> if (!fn_show_object)
> fn_show_object = show_object;
> - traverse_commit_list_filtered(revs.filter, &revs,
> - show_commit, fn_show_object, NULL,
> - NULL);
> + traverse_commit_list(&revs,
> + show_commit, fn_show_object,
> + NULL);
>
> if (unpack_unreachable_expiration) {
> revs.ignore_missing_links = 1;
> diff --git a/builtin/rev-list.c b/builtin/rev-list.c
> index 556e78aebb9..3ab727817fd 100644
> --- a/builtin/rev-list.c
> +++ b/builtin/rev-list.c
> @@ -733,7 +733,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
> oidset_init(&missing_objects, DEFAULT_OIDSET_SIZE);
>
> traverse_commit_list_filtered(
> - revs.filter, &revs, show_commit, show_object, &info,
> + &revs, show_commit, show_object, &info,
> (arg_print_omitted ? &omitted_objects : NULL));
>
> if (arg_print_omitted) {
> diff --git a/list-objects.c b/list-objects.c
> index 2f623f82115..9422625b39e 100644
> --- a/list-objects.c
> +++ b/list-objects.c
> @@ -416,22 +416,7 @@ static void do_traverse(struct traversal_context *ctx)
> strbuf_release(&csp);
> }
>
> -void traverse_commit_list(struct rev_info *revs,
> - show_commit_fn show_commit,
> - show_object_fn show_object,
> - void *show_data)
> -{
> - struct traversal_context ctx;
> - ctx.revs = revs;
> - ctx.show_commit = show_commit;
> - ctx.show_object = show_object;
> - ctx.show_data = show_data;
> - ctx.filter = NULL;
> - do_traverse(&ctx);
> -}
> -
> void traverse_commit_list_filtered(
> - struct list_objects_filter_options *filter_options,
> struct rev_info *revs,
> show_commit_fn show_commit,
> show_object_fn show_object,
> @@ -444,7 +429,13 @@ void traverse_commit_list_filtered(
> ctx.show_object = show_object;
> ctx.show_commit = show_commit;
> ctx.show_data = show_data;
> - ctx.filter = list_objects_filter__init(omitted, filter_options);
> + if (revs->filter)
> + ctx.filter = list_objects_filter__init(omitted, revs->filter);
> + else
> + ctx.filter = NULL;
> +
> do_traverse(&ctx);
> - list_objects_filter__free(ctx.filter);
> +
> + if (ctx.filter)
> + list_objects_filter__free(ctx.filter);
> }
> diff --git a/list-objects.h b/list-objects.h
> index a952680e466..9eaf4de8449 100644
> --- a/list-objects.h
> +++ b/list-objects.h
> @@ -7,7 +7,6 @@ struct rev_info;
>
> typedef void (*show_commit_fn)(struct commit *, void *);
> typedef void (*show_object_fn)(struct object *, const char *, void *);
> -void traverse_commit_list(struct rev_info *, show_commit_fn, show_object_fn, void *);
>
> typedef void (*show_edge_fn)(struct commit *);
> void mark_edges_uninteresting(struct rev_info *revs,
> @@ -18,11 +17,20 @@ struct oidset;
> struct list_objects_filter_options;
>
> void traverse_commit_list_filtered(
> - struct list_objects_filter_options *filter_options,
> struct rev_info *revs,
> show_commit_fn show_commit,
> show_object_fn show_object,
> void *show_data,
> struct oidset *omitted);
>
> +static inline void traverse_commit_list(
> + struct rev_info *revs,
> + show_commit_fn show_commit,
> + show_object_fn show_object,
> + void *show_data)
> +{
> + traverse_commit_list_filtered(revs, show_commit,
> + show_object, show_data, NULL);
> +}
> +
> #endif /* LIST_OBJECTS_H */
> diff --git a/pack-bitmap.c b/pack-bitmap.c
> index 613f2797cdf..cbefaedbf43 100644
> --- a/pack-bitmap.c
> +++ b/pack-bitmap.c
> @@ -822,9 +822,9 @@ static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
> show_data.bitmap_git = bitmap_git;
> show_data.base = base;
>
> - traverse_commit_list_filtered(revs->filter, revs,
> - show_commit, show_object,
> - &show_data, NULL);
> + traverse_commit_list(revs,
> + show_commit, show_object,
> + &show_data);
>
> revs->include_check = NULL;
> revs->include_check_obj = NULL;