Web lists-archives.com

[PATCH 182/194] commit: add repository argument to get_commit_buffer




Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx>
---
 builtin/fast-export.c                      |  2 +-
 builtin/fmt-merge-msg.c                    |  2 +-
 builtin/log.c                              |  3 ++-
 builtin/replace.c                          |  2 +-
 commit.c                                   |  8 ++++----
 commit.h                                   |  3 ++-
 contrib/coccinelle/submodule_reading.cocci |  7 +++++++
 fsck.c                                     |  3 ++-
 merge-recursive.c                          |  3 ++-
 notes-merge.c                              |  3 ++-
 pretty.c                                   |  2 +-
 sequencer.c                                | 13 ++++++++-----
 sha1_name.c                                |  2 +-
 13 files changed, 34 insertions(+), 19 deletions(-)
 create mode 100644 contrib/coccinelle/submodule_reading.cocci

diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 80853bb91a..bc04e3f0a7 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -561,7 +561,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev,
 	rev->diffopt.output_format = DIFF_FORMAT_CALLBACK;
 
 	parse_commit_or_die(commit);
-	commit_buffer = get_commit_buffer(commit, NULL);
+	commit_buffer = get_commit_buffer(the_repository, commit, NULL);
 	author = strstr(commit_buffer, "\nauthor ");
 	if (!author)
 		die ("Could not find author in commit %s",
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index c54f045ccd..6dedb92d61 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c
@@ -261,7 +261,7 @@ static void record_person_from_buf(int which, struct string_list *people,
 static void record_person(int which, struct string_list *people,
 			  struct commit *commit)
 {
-	const char *buffer = get_commit_buffer(commit, NULL);
+	const char *buffer = get_commit_buffer(the_repository, commit, NULL);
 	record_person_from_buf(which, people, buffer);
 	unuse_commit_buffer(the_repository, commit, buffer);
 }
diff --git a/builtin/log.c b/builtin/log.c
index 3ccab366e7..bb9d909f59 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -1022,7 +1022,8 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
 	log_write_email_headers(rev, head, &pp.after_subject, &need_8bit_cte);
 
 	for (i = 0; !need_8bit_cte && i < nr; i++) {
-		const char *buf = get_commit_buffer(list[i], NULL);
+		const char *buf = get_commit_buffer(the_repository, list[i],
+						    NULL);
 		if (has_non_ascii(buf))
 			need_8bit_cte = 1;
 		unuse_commit_buffer(the_repository, list[i], buf);
diff --git a/builtin/replace.c b/builtin/replace.c
index 1a92c0082a..46bb7cdfe8 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -401,7 +401,7 @@ static int create_graft(int argc, const char **argv, int force)
 		die(_("Not a valid object name: '%s'"), old_ref);
 	commit = lookup_commit_or_die(&old, old_ref);
 
-	buffer = get_commit_buffer(commit, &size);
+	buffer = get_commit_buffer(the_repository, commit, &size);
 	strbuf_add(&buf, buffer, size);
 	unuse_commit_buffer(the_repository, commit, buffer);
 
diff --git a/commit.c b/commit.c
index ac65c1dbd7..b241cc7979 100644
--- a/commit.c
+++ b/commit.c
@@ -277,7 +277,7 @@ const void *get_cached_commit_buffer(struct repository *r, const struct commit *
 	return v->buffer;
 }
 
-const void *get_commit_buffer(const struct commit *commit, unsigned long *sizep)
+const void *get_commit_buffer_the_repository(const struct commit *commit, unsigned long *sizep)
 {
 	const void *ret = get_cached_commit_buffer(the_repository, commit, sizep);
 	if (!ret) {
@@ -617,7 +617,7 @@ define_commit_slab(author_date_slab, unsigned long);
 static void record_author_date(struct author_date_slab *author_date,
 			       struct commit *commit)
 {
-	const char *buffer = get_commit_buffer(commit, NULL);
+	const char *buffer = get_commit_buffer(the_repository, commit, NULL);
 	struct ident_split ident;
 	const char *ident_line;
 	size_t ident_len;
@@ -1163,7 +1163,7 @@ int parse_signed_commit(const struct commit *commit,
 {
 
 	unsigned long size;
-	const char *buffer = get_commit_buffer(commit, &size);
+	const char *buffer = get_commit_buffer(the_repository, commit, &size);
 	int in_signature, saw_signature = -1;
 	const char *line, *tail;
 
@@ -1320,7 +1320,7 @@ struct commit_extra_header *read_commit_extra_headers(struct commit *commit,
 {
 	struct commit_extra_header *extra = NULL;
 	unsigned long size;
-	const char *buffer = get_commit_buffer(commit, &size);
+	const char *buffer = get_commit_buffer(the_repository, commit, &size);
 	extra = read_commit_extra_header_lines(buffer, size, exclude);
 	unuse_commit_buffer(the_repository, commit, buffer);
 	return extra;
diff --git a/commit.h b/commit.h
index d2d5e66b53..b9eb079e21 100644
--- a/commit.h
+++ b/commit.h
@@ -88,7 +88,8 @@ const void *get_cached_commit_buffer(struct repository *r, const struct commit *
  * from disk. The resulting memory should not be modified, and must be given
  * to unuse_commit_buffer when the caller is done.
  */
-const void *get_commit_buffer(const struct commit *, unsigned long *size);
+#define get_commit_buffer(r, c, s) get_commit_buffer_##r(c, s)
+const void *get_commit_buffer_the_repository(const struct commit *, unsigned long *size);
 
 /*
  * Tell the commit subsytem that we are done with a particular commit buffer.
diff --git a/contrib/coccinelle/submodule_reading.cocci b/contrib/coccinelle/submodule_reading.cocci
new file mode 100644
index 0000000000..17c2e02512
--- /dev/null
+++ b/contrib/coccinelle/submodule_reading.cocci
@@ -0,0 +1,7 @@
+@@
+expression E;
+expression F;
+@@
+ get_commit_buffer(
++the_repository,
+ E, F)
diff --git a/fsck.c b/fsck.c
index 3155b77348..7788b60bf4 100644
--- a/fsck.c
+++ b/fsck.c
@@ -791,7 +791,8 @@ static int fsck_commit_buffer(struct commit *commit, const char *buffer,
 static int fsck_commit(struct commit *commit, const char *data,
 	unsigned long size, struct fsck_options *options)
 {
-	const char *buffer = data ?  data : get_commit_buffer(commit, &size);
+	const char *buffer = data ?  data : get_commit_buffer(the_repository,
+							      commit, &size);
 	int ret = fsck_commit_buffer(commit, buffer, size, options);
 	if (!data)
 		unuse_commit_buffer(the_repository, commit, buffer);
diff --git a/merge-recursive.c b/merge-recursive.c
index 6e06634993..30ddfcb94e 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -237,7 +237,8 @@ static void output_commit_title(struct merge_options *o, struct commit *commit)
 			strbuf_addstr(&o->obuf, _("(bad commit)\n"));
 		else {
 			const char *title;
-			const char *msg = get_commit_buffer(commit, NULL);
+			const char *msg = get_commit_buffer(the_repository,
+							    commit, NULL);
 			int len = find_commit_subject(msg, &title);
 			if (len)
 				strbuf_addf(&o->obuf, "%.*s\n", len, title);
diff --git a/notes-merge.c b/notes-merge.c
index 58b518ae0a..1cb1c4f8f4 100644
--- a/notes-merge.c
+++ b/notes-merge.c
@@ -672,7 +672,8 @@ int notes_merge_commit(struct notes_merge_options *o,
 	DIR *dir;
 	struct dirent *e;
 	struct strbuf path = STRBUF_INIT;
-	const char *buffer = get_commit_buffer(partial_commit, NULL);
+	const char *buffer = get_commit_buffer(the_repository, partial_commit,
+					       NULL);
 	const char *msg = strstr(buffer, "\n\n");
 	int baselen;
 
diff --git a/pretty.c b/pretty.c
index 9a7f19f8c7..c5a2f0b018 100644
--- a/pretty.c
+++ b/pretty.c
@@ -602,7 +602,7 @@ const char *logmsg_reencode(const struct commit *commit,
 	static const char *utf8 = "UTF-8";
 	const char *use_encoding;
 	char *encoding;
-	const char *msg = get_commit_buffer(commit, NULL);
+	const char *msg = get_commit_buffer(the_repository, commit, NULL);
 	char *out;
 
 	if (!output_encoding || !*output_encoding) {
diff --git a/sequencer.c b/sequencer.c
index 521da238b5..40ba4b6047 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -859,7 +859,7 @@ static int update_squash_messages(enum todo_command command,
 			return error(_("need a HEAD to fixup"));
 		if (!(head_commit = lookup_commit_reference(the_repository, &head)))
 			return error(_("could not read HEAD"));
-		if (!(head_message = get_commit_buffer(head_commit, NULL)))
+		if (!(head_message = get_commit_buffer(the_repository, head_commit, NULL)))
 			return error(_("could not read HEAD's commit message"));
 
 		find_commit_subject(head_message, &body);
@@ -883,7 +883,7 @@ static int update_squash_messages(enum todo_command command,
 		unuse_commit_buffer(the_repository, head_commit, head_message);
 	}
 
-	if (!(message = get_commit_buffer(commit, NULL)))
+	if (!(message = get_commit_buffer(the_repository, commit, NULL)))
 		return error(_("could not read commit message of %s"),
 			     oid_to_hex(&commit->object.oid));
 	find_commit_subject(message, &body);
@@ -1549,7 +1549,8 @@ static int walk_revs_populate_todo(struct todo_list *todo_list,
 
 	while ((commit = get_revision(opts->revs))) {
 		struct todo_item *item = append_new_todo(todo_list);
-		const char *commit_buffer = get_commit_buffer(commit, NULL);
+		const char *commit_buffer = get_commit_buffer(the_repository,
+							      commit, NULL);
 		const char *subject;
 		int subject_len;
 
@@ -1816,7 +1817,8 @@ static int make_patch(struct commit *commit, struct replay_opts *opts)
 
 	strbuf_addf(&buf, "%s/message", get_dir(opts));
 	if (!file_exists(buf.buf)) {
-		const char *commit_buffer = get_commit_buffer(commit, NULL);
+		const char *commit_buffer = get_commit_buffer(the_repository,
+							      commit, NULL);
 		find_commit_subject(commit_buffer, &subject);
 		res |= write_message(subject, strlen(subject), buf.buf, 1);
 		unuse_commit_buffer(the_repository, commit, commit_buffer);
@@ -2906,7 +2908,8 @@ int rearrange_squash(void)
 		item->commit->util = item;
 
 		parse_commit(the_repository, item->commit);
-		commit_buffer = get_commit_buffer(item->commit, NULL);
+		commit_buffer = get_commit_buffer(the_repository,
+						  item->commit, NULL);
 		find_commit_subject(commit_buffer, &subject);
 		format_subject(&buf, subject, " ");
 		subject = subjects[i] = strbuf_detach(&buf, &subject_len);
diff --git a/sha1_name.c b/sha1_name.c
index 7675ec634f..ee889daead 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -1150,7 +1150,7 @@ static int get_oid_oneline(const char *prefix, struct object_id *oid,
 		commit = pop_most_recent_commit(&list, ONELINE_SEEN);
 		if (!parse_object(the_repository, &commit->object.oid))
 			continue;
-		buf = get_commit_buffer(commit, NULL);
+		buf = get_commit_buffer(the_repository, commit, NULL);
 		p = strstr(buf, "\n\n");
 		matches = negative ^ (p && !regexec(&regex, p + 2, 0, NULL, 0));
 		unuse_commit_buffer(the_repository, commit, buf);
-- 
2.15.1.433.g936d1b9894.dirty