summaryrefslogtreecommitdiff
path: root/transport-helper.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-12-28 22:08:47 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-12-28 22:08:47 (GMT)
commit2546de27c31c65cd4a94782cc9939a662d7f837c (patch)
tree6a1fcda6c8fa8f5ed7e55c5b11518030f0ced722 /transport-helper.c
parent58d1772c8562c4777414d9b97de127ae5b35ad81 (diff)
parente967ca38473a05abf3e8f7a025c6b9bee487aa4f (diff)
downloadgit-2546de27c31c65cd4a94782cc9939a662d7f837c.zip
git-2546de27c31c65cd4a94782cc9939a662d7f837c.tar.gz
git-2546de27c31c65cd4a94782cc9939a662d7f837c.tar.bz2
Merge branch 'jt/transport-hide-vtable'
Code clean-up. * jt/transport-hide-vtable: transport: make transport vtable more private clone, fetch: remove redundant transport check
Diffstat (limited to 'transport-helper.c')
-rw-r--r--transport-helper.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/transport-helper.c b/transport-helper.c
index 413cd7b..5080150 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -11,6 +11,7 @@
#include "sigchain.h"
#include "argv-array.h"
#include "refs.h"
+#include "transport-internal.h"
static int debug;
@@ -650,7 +651,7 @@ static int fetch(struct transport *transport,
if (process_connect(transport, 0)) {
do_take_over(transport);
- return transport->fetch(transport, nr_heads, to_fetch);
+ return transport->vtable->fetch(transport, nr_heads, to_fetch);
}
count = 0;
@@ -990,7 +991,7 @@ static int push_refs(struct transport *transport,
if (process_connect(transport, 1)) {
do_take_over(transport);
- return transport->push_refs(transport, remote_refs, flags);
+ return transport->vtable->push_refs(transport, remote_refs, flags);
}
if (!remote_refs) {
@@ -1038,7 +1039,7 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)
if (process_connect(transport, for_push)) {
do_take_over(transport);
- return transport->get_refs_list(transport, for_push);
+ return transport->vtable->get_refs_list(transport, for_push);
}
if (data->push && for_push)
@@ -1086,6 +1087,15 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)
return ret;
}
+static struct transport_vtable vtable = {
+ set_helper_option,
+ get_refs_list,
+ fetch,
+ push_refs,
+ connect_helper,
+ release_helper
+};
+
int transport_helper_init(struct transport *transport, const char *name)
{
struct helper_data *data = xcalloc(1, sizeof(*data));
@@ -1097,12 +1107,7 @@ int transport_helper_init(struct transport *transport, const char *name)
debug = 1;
transport->data = data;
- transport->set_option = set_helper_option;
- transport->get_refs_list = get_refs_list;
- transport->fetch = fetch;
- transport->push_refs = push_refs;
- transport->disconnect = release_helper;
- transport->connect = connect_helper;
+ transport->vtable = &vtable;
transport->smart_options = &(data->transport_options);
return 0;
}