]> git.ipfire.org Git - thirdparty/git.git/commitdiff
describe: pass oid struct by const pointer
authorJeff King <peff@peff.net>
Mon, 18 Aug 2025 20:59:29 +0000 (16:59 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 Aug 2025 21:23:42 +0000 (14:23 -0700)
We pass a "struct object_id" to describe_blob() by value. This isn't
wrong, as an oid is composed only of copy-able values. But it's unusual;
typically we pass structs by const pointer, including object_ids. Let's
do so.

It similarly makes sense for us to hold that pointer in the callback
data (rather than yet another copy of the oid).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/describe.c

index d7dd8139dec4b698ebfa9d2841dbf56cb19d7d1c..383d3e6b9a87c8cf50d7ff77dd4c60d689f6170f 100644 (file)
@@ -490,7 +490,7 @@ static void describe_commit(struct object_id *oid, struct strbuf *dst)
 
 struct process_commit_data {
        struct object_id current_commit;
-       struct object_id looking_for;
+       const struct object_id *looking_for;
        struct strbuf *dst;
        struct rev_info *revs;
 };
@@ -505,7 +505,7 @@ static void process_object(struct object *obj, const char *path, void *data)
 {
        struct process_commit_data *pcd = data;
 
-       if (oideq(&pcd->looking_for, &obj->oid) && !pcd->dst->len) {
+       if (oideq(pcd->looking_for, &obj->oid) && !pcd->dst->len) {
                reset_revision_walk();
                describe_commit(&pcd->current_commit, pcd->dst);
                strbuf_addf(pcd->dst, ":%s", path);
@@ -514,7 +514,7 @@ static void process_object(struct object *obj, const char *path, void *data)
        }
 }
 
-static void describe_blob(struct object_id oid, struct strbuf *dst)
+static void describe_blob(const struct object_id *oid, struct strbuf *dst)
 {
        struct rev_info revs;
        struct strvec args = STRVEC_INIT;
@@ -554,7 +554,7 @@ static void describe(const char *arg, int last_one)
                describe_commit(&oid, &sb);
        else if (odb_read_object_info(the_repository->objects,
                                      &oid, NULL) == OBJ_BLOB)
-               describe_blob(oid, &sb);
+               describe_blob(&oid, &sb);
        else
                die(_("%s is neither a commit nor blob"), arg);