summaryrefslogtreecommitdiffstats
path: root/builtin/multi-pack-index.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2022-10-06 15:10:53 +0200
committerJunio C Hamano <gitster@pobox.com>2022-10-06 18:56:51 +0200
commit7faba18a9a82b32aeacc5dd5f525764a80640a95 (patch)
treecb3086726e4c4b045d4d320e3801c2672bdb42f5 /builtin/multi-pack-index.c
parenttest-submodule: inline resolve_relative_url() function (diff)
downloadgit-7faba18a9a82b32aeacc5dd5f525764a80640a95.tar.xz
git-7faba18a9a82b32aeacc5dd5f525764a80640a95.zip
multi-pack-index: avoid writing to global in option callback
We declare the --object-dir option like: OPT_CALLBACK(0, "object-dir", &opts.object_dir, ...); but the pointer to opts.object_dir is completely unused. Instead, the callback writes directly to a global. Which fortunately happens to be opts.object_dir. So everything works as expected, but it's unnecessarily confusing. Instead, let's have the callback write to the option value pointer that has been passed in. This also quiets a -Wunused-parameter warning (since we don't otherwise look at "opt"). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r--builtin/multi-pack-index.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/builtin/multi-pack-index.c b/builtin/multi-pack-index.c
index 9b126d6ce0..9a18a82b05 100644
--- a/builtin/multi-pack-index.c
+++ b/builtin/multi-pack-index.c
@@ -56,11 +56,12 @@ static struct opts_multi_pack_index {
static int parse_object_dir(const struct option *opt, const char *arg,
int unset)
{
- free(opts.object_dir);
+ char **value = opt->value;
+ free(*value);
if (unset)
- opts.object_dir = xstrdup(get_object_directory());
+ *value = xstrdup(get_object_directory());
else
- opts.object_dir = real_pathdup(arg, 1);
+ *value = real_pathdup(arg, 1);
return 0;
}