Add a repository argument to allow callers of parse_commit_gently to be more specific about which repository to handle. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time. The included coccinelle semantic patch will adapt any new callers in the diff produced by `make coccicheck`. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- commit.c | 2 +- commit.h | 5 +++-- revision.c | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/commit.c b/commit.c index ede31c46931..dcb32561275 100644 --- a/commit.c +++ b/commit.c @@ -394,7 +394,7 @@ int parse_commit_buffer_the_repository(struct commit *item, const void *buffer, return 0; } -int parse_commit_gently(struct commit *item, int quiet_on_missing) +int parse_commit_gently_the_repository(struct commit *item, int quiet_on_missing) { enum object_type type; void *buffer; diff --git a/commit.h b/commit.h index 66eb576897f..b1198ec2b77 100644 --- a/commit.h +++ b/commit.h @@ -74,10 +74,11 @@ struct commit *lookup_commit_or_die(const struct object_id *oid, const char *ref #define parse_commit_buffer(r, i, b, s) parse_commit_buffer_##r(i, b, s) int parse_commit_buffer_the_repository(struct commit *item, const void *buffer, unsigned long size); -int parse_commit_gently(struct commit *item, int quiet_on_missing); +#define parse_commit_gently(r, i, q) parse_commit_gently_##r(i, q) +int parse_commit_gently_the_repository(struct commit *item, int quiet_on_missing); static inline int parse_commit(struct commit *item) { - return parse_commit_gently(item, 0); + return parse_commit_gently(the_repository, item, 0); } void parse_commit_or_die(struct commit *item); diff --git a/revision.c b/revision.c index 25df00cc16c..33506faabda 100644 --- a/revision.c +++ b/revision.c @@ -785,7 +785,7 @@ static int add_parents_to_list(struct rev_info *revs, struct commit *commit, parent = parent->next; if (p) p->object.flags |= UNINTERESTING; - if (parse_commit_gently(p, 1) < 0) + if (parse_commit_gently(the_repository, p, 1) < 0) continue; if (p->parents) mark_parents_uninteresting(p); @@ -813,7 +813,7 @@ static int add_parents_to_list(struct rev_info *revs, struct commit *commit, struct commit *p = parent->item; int gently = revs->ignore_missing_links || revs->exclude_promisor_objects; - if (parse_commit_gently(p, gently) < 0) { + if (parse_commit_gently(the_repository, p, gently) < 0) { if (revs->exclude_promisor_objects && is_promisor_object(&p->object.oid)) { if (revs->first_parent_only) -- 2.17.0.582.gccdcbd54c44.dirty