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>

Jeff King committed Oct 6, 2022 at 09:10 UTC 7faba18a9a82b32aeacc5dd5f525764a80640a95
1 file changed +4 -3
builtin/multi-pack-index.c
+4 -3
@@ -56,11 +56,12 @@ static struct opts_multi_pack_index {
56 static int parse_object_dir(const struct option *opt, const char *arg,
57 int unset)
58 {
59 - free(opts.object_dir);
59 + char **value = opt->value;
60 + free(*value);
61 if (unset)
61 - opts.object_dir = xstrdup(get_object_directory());
62 + *value = xstrdup(get_object_directory());
63 else
63 - opts.object_dir = real_pathdup(arg, 1);
64 + *value = real_pathdup(arg, 1);
65 return 0;
66 }
67