summaryrefslogtreecommitdiff
path: root/builtin-fetch.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-09-19 00:49:31 -0400
committerJunio C Hamano <gitster@pobox.com>2007-09-19 03:22:31 -0700
commit824d5776c3f275c644c71b8c7e254bd2d7b08071 (patch)
treea890e276fc45eafdaf55f97dbace327a96448fc3 /builtin-fetch.c
parent28b91f8ad9e4791b5c35ca6bffbb78725b4e5bbf (diff)
downloadgit-824d5776c3f275c644c71b8c7e254bd2d7b08071.tar.gz
Refactor struct transport_ops inlined into struct transport
Aside from reducing the code by 20 lines this refactoring removes a level of indirection when trying to access the operations of a given transport "instance", making the code clearer and easier to follow. It also has the nice effect of giving us the benefits of C99 style struct initialization (namely ".fetch = X") without requiring that level of language support from our compiler. We don't need to worry about new operation methods being added as they will now be NULL'd out automatically by the xcalloc() we use to create the new struct transport we supply to the caller. This pattern already exists in struct walker, so we already have a precedent for it in Git. We also don't really need to worry about any sort of performance decreases that may occur as a result of filling out 4-8 op pointers when we make a "struct transport". The extra few CPU cycles this requires over filling in the "struct transport_ops" is killed by the time it will take Git to actually *use* one of those functions, as most transport operations are going over the wire or will be copying object data locally between two directories. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-fetch.c')
-rw-r--r--builtin-fetch.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/builtin-fetch.c b/builtin-fetch.c
index 997a8ff954..2f639ccef2 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -392,8 +392,7 @@ static int do_fetch(struct transport *transport,
if (transport->remote->fetch_tags == -1)
no_tags = 1;
- if (!transport->ops || !transport->ops->get_refs_list ||
- !transport->ops->fetch)
+ if (!transport->get_refs_list || !transport->fetch)
die("Don't know how to fetch from %s", transport->url);
/* if not appending, truncate FETCH_HEAD */