Merge branch 'rs/am-parse-options-cleanup'

Code clean-up.

* rs/am-parse-options-cleanup:
  am: don't pass strvec to apply_parse_options()
This commit is contained in:
Junio C Hamano 2022-12-26 11:42:05 +09:00
commit d8e406449a

View file

@ -1476,6 +1476,7 @@ static int run_apply(const struct am_state *state, const char *index_file)
int res, opts_left; int res, opts_left;
int force_apply = 0; int force_apply = 0;
int options = 0; int options = 0;
const char **apply_argv;
if (init_apply_state(&apply_state, the_repository, NULL)) if (init_apply_state(&apply_state, the_repository, NULL))
BUG("init_apply_state() failed"); BUG("init_apply_state() failed");
@ -1483,7 +1484,15 @@ static int run_apply(const struct am_state *state, const char *index_file)
strvec_push(&apply_opts, "apply"); strvec_push(&apply_opts, "apply");
strvec_pushv(&apply_opts, state->git_apply_opts.v); strvec_pushv(&apply_opts, state->git_apply_opts.v);
opts_left = apply_parse_options(apply_opts.nr, apply_opts.v, /*
* Build a copy that apply_parse_options() can rearrange.
* apply_opts.v keeps referencing the allocated strings for
* strvec_clear() to release.
*/
ALLOC_ARRAY(apply_argv, apply_opts.nr);
COPY_ARRAY(apply_argv, apply_opts.v, apply_opts.nr);
opts_left = apply_parse_options(apply_opts.nr, apply_argv,
&apply_state, &force_apply, &options, &apply_state, &force_apply, &options,
NULL); NULL);
@ -1513,6 +1522,7 @@ static int run_apply(const struct am_state *state, const char *index_file)
strvec_clear(&apply_paths); strvec_clear(&apply_paths);
strvec_clear(&apply_opts); strvec_clear(&apply_opts);
clear_apply_state(&apply_state); clear_apply_state(&apply_state);
free(apply_argv);
if (res) if (res)
return res; return res;