Skip to content

Commit b359030

Browse files
jonathantanmygitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5d91669 commit b359030

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

remote-curl.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,6 @@ struct rpc_state {
516516
int in;
517517
int out;
518518
int any_written;
519-
struct strbuf result;
520519
unsigned gzip_request : 1;
521520
unsigned initial_buffer : 1;
522521
};
@@ -828,7 +827,8 @@ static int post_rpc(struct rpc_state *rpc)
828827
}
829828

830829
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)
832832
{
833833
const char *svc = rpc->service_name;
834834
struct strbuf buf = STRBUF_INIT;
@@ -849,7 +849,6 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
849849
rpc->buf = xmalloc(rpc->alloc);
850850
rpc->in = client.in;
851851
rpc->out = client.out;
852-
strbuf_init(&rpc->result, 0);
853852

854853
strbuf_addf(&buf, "%s%s", url.buf, svc);
855854
rpc->service_url = strbuf_detach(&buf, NULL);
@@ -877,7 +876,7 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
877876
close(client.in);
878877
client.in = -1;
879878
if (!err) {
880-
strbuf_read(&rpc->result, client.out, 0);
879+
strbuf_read(rpc_result, client.out, 0);
881880
} else {
882881
char buf[4096];
883882
for (;;)
@@ -930,6 +929,7 @@ static int fetch_git(struct discovery *heads,
930929
struct strbuf preamble = STRBUF_INIT;
931930
int i, err;
932931
struct argv_array args = ARGV_ARRAY_INIT;
932+
struct strbuf rpc_result = STRBUF_INIT;
933933

934934
argv_array_pushl(&args, "fetch-pack", "--stateless-rpc",
935935
"--stdin", "--lock-pack", NULL);
@@ -977,10 +977,10 @@ static int fetch_git(struct discovery *heads,
977977
rpc.service_name = "git-upload-pack",
978978
rpc.gzip_request = 1;
979979

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);
984984
strbuf_release(&preamble);
985985
argv_array_clear(&args);
986986
return err;
@@ -1075,6 +1075,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
10751075
struct argv_array args;
10761076
struct string_list_item *cas_option;
10771077
struct strbuf preamble = STRBUF_INIT;
1078+
struct strbuf rpc_result = STRBUF_INIT;
10781079

10791080
argv_array_init(&args);
10801081
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)
11081109
memset(&rpc, 0, sizeof(rpc));
11091110
rpc.service_name = "git-receive-pack",
11101111

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);
11151116
strbuf_release(&preamble);
11161117
argv_array_clear(&args);
11171118
return err;

0 commit comments

Comments
 (0)