diff options
Diffstat (limited to 'revision.c')
| -rw-r--r-- | revision.c | 49 |
1 files changed, 3 insertions, 46 deletions
diff --git a/revision.c b/revision.c index 806a1c4c24..6ba8f67054 100644 --- a/revision.c +++ b/revision.c @@ -2321,24 +2321,6 @@ static timestamp_t parse_age(const char *arg) return num; } -static void overwrite_argv(int *argc, const char **argv, - const char **value, - const struct setup_revision_opt *opt) -{ - /* - * Detect the case when we are overwriting ourselves. The assignment - * itself would be a noop either way, but this lets us avoid corner - * cases around the free() and NULL operations. - */ - if (*value != argv[*argc]) { - if (opt && opt->free_removed_argv_elements) - free((char *)argv[*argc]); - argv[*argc] = *value; - *value = NULL; - } - (*argc)++; -} - static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) @@ -2360,7 +2342,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg starts_with(arg, "--branches=") || starts_with(arg, "--tags=") || starts_with(arg, "--remotes=") || starts_with(arg, "--no-walk=")) { - overwrite_argv(unkc, unkv, &argv[0], opt); + unkv[(*unkc)++] = arg; return 1; } @@ -2724,7 +2706,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg } else { int opts = diff_opt_parse(&revs->diffopt, argv, argc, revs->prefix); if (!opts) - overwrite_argv(unkc, unkv, &argv[0], opt); + unkv[(*unkc)++] = arg; return opts; } @@ -3036,7 +3018,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s if (!strcmp(arg, "--stdin")) { if (revs->disable_stdin) { - overwrite_argv(&left, argv, &argv[i], opt); + argv[left++] = arg; continue; } if (revs->read_from_stdin++) @@ -3192,34 +3174,9 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s revs->show_notes_given = 1; } - if (argv) { - if (opt && opt->free_removed_argv_elements) - free((char *)argv[left]); - argv[left] = NULL; - } - return left; } -void setup_revisions_from_strvec(struct strvec *argv, struct rev_info *revs, - struct setup_revision_opt *opt) -{ - struct setup_revision_opt fallback_opt; - int ret; - - if (!opt) { - memset(&fallback_opt, 0, sizeof(fallback_opt)); - opt = &fallback_opt; - } - opt->free_removed_argv_elements = 1; - - ret = setup_revisions(argv->nr, argv->v, revs, opt); - - for (size_t i = ret; i < argv->nr; i++) - free((char *)argv->v[i]); - argv->nr = ret; -} - static void release_revisions_cmdline(struct rev_cmdline_info *cmdline) { unsigned int i; |
