]> git.ipfire.org Git - thirdparty/git.git/commitdiff
grep: read submodule entry with explicit repo
authorJonathan Tan <jonathantanmy@google.com>
Mon, 16 Aug 2021 21:09:54 +0000 (14:09 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Sep 2021 18:47:59 +0000 (11:47 -0700)
Replace an existing parse_object_or_die() call (which implicitly works
on the_repository) with a function call that allows a repository to be
passed in. There is no such direct equivalent to parse_object_or_die(),
but we only need the type of the object, so replace with
oid_object_info().

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Reviewed-by: Emily Shaffer <emilyshaffer@google.com>
Reviewed-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/grep.c

index e454335e9d8fee2f599b3f60e0ff62455012298f..9e61c7c9936c8ab945e2c2016768d433eb0040d0 100644 (file)
@@ -457,27 +457,27 @@ static int grep_submodule(struct grep_opt *opt,
        subopt.repo = &subrepo;
 
        if (oid) {
-               struct object *object;
+               enum object_type object_type;
                struct tree_desc tree;
                void *data;
                unsigned long size;
                struct strbuf base = STRBUF_INIT;
 
                obj_read_lock();
-               object = parse_object_or_die(oid, NULL);
+               object_type = oid_object_info(&subrepo, oid, NULL);
                obj_read_unlock();
                data = read_object_with_reference(&subrepo,
-                                                 &object->oid, tree_type,
+                                                 oid, tree_type,
                                                  &size, NULL);
                if (!data)
-                       die(_("unable to read tree (%s)"), oid_to_hex(&object->oid));
+                       die(_("unable to read tree (%s)"), oid_to_hex(oid));
 
                strbuf_addstr(&base, filename);
                strbuf_addch(&base, '/');
 
                init_tree_desc(&tree, data, size);
                hit = grep_tree(&subopt, pathspec, &tree, &base, base.len,
-                               object->type == OBJ_COMMIT);
+                               object_type == OBJ_COMMIT);
                strbuf_release(&base);
                free(data);
        } else {