aboutsummaryrefslogtreecommitdiffstats
path: root/revision.c
diff options
context:
space:
mode:
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c49
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;