From: "René Scharfe" <rene.scharfe@lsrfire.ath.cx>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jens Lehmann" <Jens.Lehmann@web.de>
Subject: [PATCH 2/3] pass struct commit to diff_tree_combined_merge()
Date: Sat, 17 Dec 2011 11:20:07 +0100 [thread overview]
Message-ID: <4EEC6CD7.2030408@lsrfire.ath.cx> (raw)
In-Reply-To: <4EEC6BD4.4040302@lsrfire.ath.cx>
Instead of passing the hash of a commit and then searching that
same commit in the single caller, simply pass the commit directly.
---
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 cfe6230..a2e8dcf 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 96085cb..ae71f4c 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 e7694a3..319bd31 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;
}
--
1.7.8
next prev parent reply other threads:[~2011-12-17 10:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-17 10:15 [PATCH 1/3] use struct sha1_array in diff_tree_combined() René Scharfe
2011-12-17 10:20 ` René Scharfe [this message]
2011-12-17 10:27 ` [PATCH 3/3] submodule: use diff_tree_combined_merge() instead of diff_tree_combined() René Scharfe
2011-12-17 10:27 ` [PATCH 2/3] pass struct commit to diff_tree_combined_merge() René Scharfe
2011-12-17 10:27 ` [PATCH 1/3] use struct sha1_array in diff_tree_combined() René Scharfe
2011-12-17 10:53 ` Jeff King
2011-12-17 11:16 ` René Scharfe
2011-12-17 11:19 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EEC6CD7.2030408@lsrfire.ath.cx \
--to=rene.scharfe@lsrfire.ath.cx \
--cc=Jens.Lehmann@web.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).