remote-curl: reduce scope of rpc_state.result
The result field in struct rpc_state is only used in rpc_service(), and not in any functions it directly or indirectly calls. Refactor it to become an argument of rpc_service() instead. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Tan committed
Feb 14, 2019 at 11:06 UTC
b35903092e35cf249777ff14c1135c0b50f4e1f3
1 file changed
+13
-12
remote-curl.c
+13
-12
@@ -516,7 +516,6 @@ struct rpc_state {
516
int in;
517
int out;
518
int any_written;
519
- struct strbuf result;
519
unsigned gzip_request : 1;
520
unsigned initial_buffer : 1;
521
};
@@ -828,7 +827,8 @@ retry:
827
}
828
829
static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
831
- const char **client_argv, const struct strbuf *preamble)
830
+ const char **client_argv, const struct strbuf *preamble,
831
+ struct strbuf *rpc_result)
832
{
833
const char *svc = rpc->service_name;
834
struct strbuf buf = STRBUF_INIT;
@@ -849,7 +849,6 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
849
rpc->buf = xmalloc(rpc->alloc);
850
rpc->in = client.in;
851
rpc->out = client.out;
852
- strbuf_init(&rpc->result, 0);
852
853
strbuf_addf(&buf, "%s%s", url.buf, svc);
854
rpc->service_url = strbuf_detach(&buf, NULL);
@@ -877,7 +876,7 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
876
close(client.in);
877
client.in = -1;
878
if (!err) {
880
- strbuf_read(&rpc->result, client.out, 0);
879
+ strbuf_read(rpc_result, client.out, 0);
880
} else {
881
char buf[4096];
882
for (;;)
@@ -930,6 +929,7 @@ static int fetch_git(struct discovery *heads,
929
struct strbuf preamble = STRBUF_INIT;
930
int i, err;
931
struct argv_array args = ARGV_ARRAY_INIT;
932
+ struct strbuf rpc_result = STRBUF_INIT;
933
934
argv_array_pushl(&args, "fetch-pack", "--stateless-rpc",
935
"--stdin", "--lock-pack", NULL);
@@ -977,10 +977,10 @@ static int fetch_git(struct discovery *heads,
977
rpc.service_name = "git-upload-pack",
978
rpc.gzip_request = 1;
979
980
- err = rpc_service(&rpc, heads, args.argv, &preamble);
981
- if (rpc.result.len)
982
- write_or_die(1, rpc.result.buf, rpc.result.len);
983
- strbuf_release(&rpc.result);
980
+ err = rpc_service(&rpc, heads, args.argv, &preamble, &rpc_result);
981
+ if (rpc_result.len)
982
+ write_or_die(1, rpc_result.buf, rpc_result.len);
983
+ strbuf_release(&rpc_result);
984
strbuf_release(&preamble);
985
argv_array_clear(&args);
986
return err;
@@ -1075,6 +1075,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
1075
struct argv_array args;
1076
struct string_list_item *cas_option;
1077
struct strbuf preamble = STRBUF_INIT;
1078
+ struct strbuf rpc_result = STRBUF_INIT;
1079
1080
argv_array_init(&args);
1081
argv_array_pushl(&args, "send-pack", "--stateless-rpc", "--helper-status",
@@ -1108,10 +1109,10 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
1109
memset(&rpc, 0, sizeof(rpc));
1110
rpc.service_name = "git-receive-pack",
1111
1111
- err = rpc_service(&rpc, heads, args.argv, &preamble);
1112
- if (rpc.result.len)
1113
- write_or_die(1, rpc.result.buf, rpc.result.len);
1114
- strbuf_release(&rpc.result);
1112
+ err = rpc_service(&rpc, heads, args.argv, &preamble, &rpc_result);
1113
+ if (rpc_result.len)
1114
+ write_or_die(1, rpc_result.buf, rpc_result.len);
1115
+ strbuf_release(&rpc_result);
1116
strbuf_release(&preamble);
1117
argv_array_clear(&args);
1118
return err;