diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2021-08-16 14:09:56 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-09-08 11:48:05 -0700 |
commit | 0693806bf82fb76347e226d8fc5e69077c0a3df5 (patch) | |
tree | b584ca85d7876dc390c4be149afee6a3af5dfbee /grep.c | |
parent | dd45471a3717bcd6561e405371b81928214ad1b5 (diff) | |
download | git-0693806bf82fb76347e226d8fc5e69077c0a3df5.tar.gz |
grep: add repository to OID grep sources
Record the repository whenever an OID grep source is created, and teach
the worker threads to explicitly provide the repository when accessing
objects.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Reviewed-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'grep.c')
-rw-r--r-- | grep.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1863,7 +1863,8 @@ void grep_source_init_file(struct grep_source *gs, const char *name, } void grep_source_init_oid(struct grep_source *gs, const char *name, - const char *path, const struct object_id *oid) + const char *path, const struct object_id *oid, + struct repository *repo) { gs->type = GREP_SOURCE_OID; gs->name = xstrdup_or_null(name); @@ -1872,6 +1873,7 @@ void grep_source_init_oid(struct grep_source *gs, const char *name, gs->size = 0; gs->driver = NULL; gs->identifier = oiddup(oid); + gs->repo = repo; } void grep_source_clear(struct grep_source *gs) @@ -1900,7 +1902,8 @@ static int grep_source_load_oid(struct grep_source *gs) { enum object_type type; - gs->buf = read_object_file(gs->identifier, &type, &gs->size); + gs->buf = repo_read_object_file(gs->repo, gs->identifier, &type, + &gs->size); if (!gs->buf) return error(_("'%s': unable to read %s"), gs->name, |