diff options
author | Jeff King <peff@peff.net> | 2022-10-06 15:10:53 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-10-06 18:56:51 +0200 |
commit | 7faba18a9a82b32aeacc5dd5f525764a80640a95 (patch) | |
tree | cb3086726e4c4b045d4d320e3801c2672bdb42f5 | |
parent | test-submodule: inline resolve_relative_url() function (diff) | |
download | git-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>
-rw-r--r-- | builtin/multi-pack-index.c | 7 |
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; } |