From 82889295e76200714d76e0f7beb07b6b9e3b5a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= Date: Sat, 17 Dec 2011 11:20:07 +0100 Subject: [PATCH] pass struct commit to diff_tree_combined_merge() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of passing the hash of a commit and then searching that same commit in the single caller, simply pass the commit directly. Signed-off-by: René Scharfe Signed-off-by: Junio C Hamano --- combine-diff.c | 7 +++---- diff.h | 3 ++- log-tree.c | 4 +--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/combine-diff.c b/combine-diff.c index cfe62303a8..a2e8dcf855 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1196,10 +1196,9 @@ void diff_tree_combined(const unsigned char *sha1, } } -void diff_tree_combined_merge(const unsigned char *sha1, - int dense, struct rev_info *rev) +void diff_tree_combined_merge(const struct commit *commit, int dense, + struct rev_info *rev) { - struct commit *commit = lookup_commit(sha1); struct commit_list *parent = commit->parents; struct sha1_array parents = SHA1_ARRAY_INIT; @@ -1207,6 +1206,6 @@ void diff_tree_combined_merge(const unsigned char *sha1, sha1_array_append(&parents, parent->item->object.sha1); parent = parent->next; } - diff_tree_combined(sha1, &parents, dense, rev); + diff_tree_combined(commit->object.sha1, &parents, dense, rev); sha1_array_clear(&parents); } diff --git a/diff.h b/diff.h index 96085cbb0f..ae71f4ccf9 100644 --- a/diff.h +++ b/diff.h @@ -13,6 +13,7 @@ struct strbuf; struct diff_filespec; struct userdiff_driver; struct sha1_array; +struct commit; typedef void (*change_fn_t)(struct diff_options *options, unsigned old_mode, unsigned new_mode, @@ -198,7 +199,7 @@ extern void show_combined_diff(struct combine_diff_path *elem, int num_parent, extern void diff_tree_combined(const unsigned char *sha1, const struct sha1_array *parents, int dense, struct rev_info *rev); -extern void diff_tree_combined_merge(const unsigned char *sha1, int, struct rev_info *); +extern void diff_tree_combined_merge(const struct commit *commit, int dense, struct rev_info *rev); void diff_set_mnemonic_prefix(struct diff_options *options, const char *a, const char *b); diff --git a/log-tree.c b/log-tree.c index e7694a3a4c..319bd31e2b 100644 --- a/log-tree.c +++ b/log-tree.c @@ -599,9 +599,7 @@ int log_tree_diff_flush(struct rev_info *opt) static int do_diff_combined(struct rev_info *opt, struct commit *commit) { - unsigned const char *sha1 = commit->object.sha1; - - diff_tree_combined_merge(sha1, opt->dense_combined_merges, opt); + diff_tree_combined_merge(commit, opt->dense_combined_merges, opt); return !opt->loginfo; }