From 5e0c63604dc1e5bb2e81f0f216cf31bd98f14210 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Thu, 28 Jun 2018 18:22:01 -0700 Subject: [PATCH] commit: add repository argument to set_commit_buffer Add a repository argument to allow callers of set_commit_buffer 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. Signed-off-by: Stefan Beller Signed-off-by: Junio C Hamano --- blame.c | 2 +- commit.c | 4 ++-- commit.h | 3 ++- object.c | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/blame.c b/blame.c index 8a0655a599..cf102276be 100644 --- a/blame.c +++ b/blame.c @@ -158,7 +158,7 @@ static void set_commit_buffer_from_strbuf(struct commit *c, struct strbuf *sb) { size_t len; void *buf = strbuf_detach(sb, &len); - set_commit_buffer(c, buf, len); + set_commit_buffer(the_repository, c, buf, len); } /* diff --git a/commit.c b/commit.c index 75d0bdede8..cdfb1a025b 100644 --- a/commit.c +++ b/commit.c @@ -262,7 +262,7 @@ struct commit_buffer { define_commit_slab(buffer_slab, struct commit_buffer); static struct buffer_slab buffer_slab = COMMIT_SLAB_INIT(1, buffer_slab); -void set_commit_buffer(struct commit *commit, void *buffer, unsigned long size) +void set_commit_buffer_the_repository(struct commit *commit, void *buffer, unsigned long size) { struct commit_buffer *v = buffer_slab_at(&buffer_slab, commit); v->buffer = buffer; @@ -450,7 +450,7 @@ int parse_commit_gently(struct commit *item, int quiet_on_missing) } ret = parse_commit_buffer(the_repository, item, buffer, size, 0); if (save_commit_buffer && !ret) { - set_commit_buffer(item, buffer, size); + set_commit_buffer(the_repository, item, buffer, size); return 0; } free(buffer); diff --git a/commit.h b/commit.h index f326c13622..7c14dfdc54 100644 --- a/commit.h +++ b/commit.h @@ -95,7 +95,8 @@ void parse_commit_or_die(struct commit *item); * Associate an object buffer with the commit. The ownership of the * memory is handed over to the commit, and must be free()-able. */ -void set_commit_buffer(struct commit *, void *buffer, unsigned long size); +#define set_commit_buffer(r, c, b, s) set_commit_buffer_##r(c, b, s) +void set_commit_buffer_the_repository(struct commit *, void *buffer, unsigned long size); /* * Get any cached object buffer associated with the commit. Returns NULL diff --git a/object.c b/object.c index 5494c0cbaa..d1f77565af 100644 --- a/object.c +++ b/object.c @@ -217,7 +217,7 @@ struct object *parse_object_buffer_the_repository(const struct object_id *oid, e if (parse_commit_buffer(the_repository, commit, buffer, size, 1)) return NULL; if (!get_cached_commit_buffer(commit, NULL)) { - set_commit_buffer(commit, buffer, size); + set_commit_buffer(the_repository, commit, buffer, size); *eaten_p = 1; } obj = &commit->object;