summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-05-19 08:48:46 -0400
committerJunio C Hamano <gitster@pobox.com>2017-05-24 10:59:27 +0900
commit1d6c93817bf22d6bf279bac302911cc93f63046c (patch)
tree0cffd902cab88d77d60ca88bbf1dda433a55f238 /revision.c
parented79b2cf034b81473dd1fa9648593b245c07daea (diff)
downloadgit-1d6c93817bf22d6bf279bac302911cc93f63046c.tar.gz
handle_revision_arg: simplify commit reference lookups
The "dotdot" range parser avoids calling lookup_commit_reference() if we are directly fed two commits. But its casts are unnecessarily complex; that function will just return a commit we pass into it. Just calling the function all the time is much simpler, and doesn't do any significant extra work (the object is already parsed, and deref_tag() on a non-tag is a noop; we do incur one extra lookup_object() call, but that's fairly trivial). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/revision.c b/revision.c
index 2bcd60a2bb..dc32812906 100644
--- a/revision.c
+++ b/revision.c
@@ -1500,12 +1500,8 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
struct commit *a, *b;
struct commit_list *exclude;
- a = (a_obj->type == OBJ_COMMIT
- ? (struct commit *)a_obj
- : lookup_commit_reference(a_obj->oid.hash));
- b = (b_obj->type == OBJ_COMMIT
- ? (struct commit *)b_obj
- : lookup_commit_reference(b_obj->oid.hash));
+ a = lookup_commit_reference(a_obj->oid.hash);
+ b = lookup_commit_reference(b_obj->oid.hash);
if (!a || !b)
goto missing;
exclude = get_merge_bases(a, b);