grep: remove "repo" arg from non-supporting funcs

As part of commit f9ee2fcdfa ("grep: recurse in-process using 'struct
repository'", 2017-08-02), many functions in builtin/grep.c were
converted to also take "struct repository *" arguments. Among them were
grep_object() and grep_objects().

However, at least grep_objects() was converted incompletely - it calls
gitmodules_config_oid(), which references the_repository.

But it turns out that the conversion was extraneous anyway - there has
been no user-visible effect - because grep_objects() is never invoked
except with the_repository. This is because grepping through objects
cannot be done recursively into submodules.

Revert the changes to grep_objects() and grep_object() (which conversion
is also extraneous) to show that both these functions do not support
repositories other than the_repository.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jonathan Tan 2018-03-28 15:35:27 -07:00 committed by Junio C Hamano
parent 61aad92b85
commit 6856077ab0

View file

@ -595,8 +595,7 @@ static int grep_tree(struct grep_opt *opt, const struct pathspec *pathspec,
} }
static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec, static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
struct object *obj, const char *name, const char *path, struct object *obj, const char *name, const char *path)
struct repository *repo)
{ {
if (obj->type == OBJ_BLOB) if (obj->type == OBJ_BLOB)
return grep_oid(opt, &obj->oid, name, 0, path); return grep_oid(opt, &obj->oid, name, 0, path);
@ -623,7 +622,7 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
} }
init_tree_desc(&tree, data, size); init_tree_desc(&tree, data, size);
hit = grep_tree(opt, pathspec, &tree, &base, base.len, hit = grep_tree(opt, pathspec, &tree, &base, base.len,
obj->type == OBJ_COMMIT, repo); obj->type == OBJ_COMMIT, the_repository);
strbuf_release(&base); strbuf_release(&base);
free(data); free(data);
return hit; return hit;
@ -632,7 +631,6 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
} }
static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec, static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
struct repository *repo,
const struct object_array *list) const struct object_array *list)
{ {
unsigned int i; unsigned int i;
@ -648,8 +646,8 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
submodule_free(); submodule_free();
gitmodules_config_oid(&real_obj->oid); gitmodules_config_oid(&real_obj->oid);
} }
if (grep_object(opt, pathspec, real_obj, list->objects[i].name, list->objects[i].path, if (grep_object(opt, pathspec, real_obj, list->objects[i].name,
repo)) { list->objects[i].path)) {
hit = 1; hit = 1;
if (opt->status_only) if (opt->status_only)
break; break;
@ -1098,7 +1096,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
if (cached) if (cached)
die(_("both --cached and trees are given.")); die(_("both --cached and trees are given."));
hit = grep_objects(&opt, &pathspec, the_repository, &list); hit = grep_objects(&opt, &pathspec, &list);
} }
if (num_threads) if (num_threads)