summaryrefslogtreecommitdiff
path: root/builtin/ls-remote.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2020-08-13 11:55:51 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-08-13 11:05:26 -0700
commit3e19816dc044a4aca4a15276c92f804c44d0f65f (patch)
tree02c667fb56c1c192fe70451bcf873089f4234364 /builtin/ls-remote.c
parentstop calling UNLEAK() before die() (diff)
downloadtgif-3e19816dc044a4aca4a15276c92f804c44d0f65f.tar.xz
ls-remote: simplify UNLEAK() usage
We UNLEAK() the "sorting" list created by parsing command-line options (which is essentially used until the program exits). But we do so right before leaving the cmd_ls_remote() function, which means we have to hit all of the exits. But the point of UNLEAK() is that it's an annotation which doesn't impact the variable itself. We can mark it as soon as we're done writing its value, and then we only have to do so once. This gives us a minor code reduction, and serves as a better example of how UNLEAK() can be used. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/ls-remote.c')
-rw-r--r--builtin/ls-remote.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c
index 3a4dd12903..5f969eb879 100644
--- a/builtin/ls-remote.c
+++ b/builtin/ls-remote.c
@@ -83,6 +83,8 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
PARSE_OPT_STOP_AT_NON_OPTION);
dest = argv[0];
+ UNLEAK(sorting);
+
if (argc > 1) {
int i;
pattern = xcalloc(argc, sizeof(const char *));
@@ -107,7 +109,6 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
if (get_url) {
printf("%s\n", *remote->url);
- UNLEAK(sorting);
return 0;
}
@@ -122,10 +123,8 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
int hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport));
repo_set_hash_algo(the_repository, hash_algo);
}
- if (transport_disconnect(transport)) {
- UNLEAK(sorting);
+ if (transport_disconnect(transport))
return 1;
- }
if (!dest && !quiet)
fprintf(stderr, "From %s\n", *remote->url);
@@ -150,7 +149,6 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
status = 0; /* we found something */
}
- UNLEAK(sorting);
ref_array_clear(&ref_array);
return status;
}