]> git.ipfire.org Git - thirdparty/git.git/commitdiff
odb: get rid of `the_repository` in `assert_oid_type()`
authorPatrick Steinhardt <ps@pks.im>
Thu, 5 Jun 2025 06:46:56 +0000 (08:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Jun 2025 15:51:58 +0000 (08:51 -0700)
Get rid of our dependency on `the_repository` in `assert_oid_type()` by
passing in the object database as a parameter and adjusting all callers.

Rename the function to `odb_assert_oid_type()`.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit-tree.c
commit.c
odb.c
odb.h

index 546069f868202797002c083e28d4b80896230cbd..31cfd9bd15d61574e913758adf0ea15feafee7d9 100644 (file)
@@ -48,7 +48,7 @@ static int parse_parent_arg_callback(const struct option *opt,
        if (repo_get_oid_commit(the_repository, arg, &oid))
                die(_("not a valid object name %s"), arg);
 
-       assert_oid_type(&oid, OBJ_COMMIT);
+       odb_assert_oid_type(the_repository->objects, &oid, OBJ_COMMIT);
        new_parent(lookup_commit(the_repository, &oid), parents);
        return 0;
 }
index 1d30f8ce15ad8c3094cf349bf23a514dc5224286..aa65183d8b6dd860b393ada6451dc2a752225398 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -1706,7 +1706,7 @@ int commit_tree_extended(const char *msg, size_t msg_len,
        /* Not having i18n.commitencoding is the same as having utf-8 */
        encoding_is_utf8 = is_encoding_utf8(git_commit_encoding);
 
-       assert_oid_type(tree, OBJ_TREE);
+       odb_assert_oid_type(the_repository->objects, tree, OBJ_TREE);
 
        if (memchr(msg, '\0', msg_len))
                return error("a NUL byte in commit log message not allowed.");
diff --git a/odb.c b/odb.c
index 483b9b38414d744fe92653445517ce97170f6cf5..3a3ceed55083fb60bf82b85026e9c28814b33479 100644 (file)
--- a/odb.c
+++ b/odb.c
@@ -946,9 +946,10 @@ int has_object(struct repository *r, const struct object_id *oid,
        return oid_object_info_extended(r, oid, NULL, object_info_flags) >= 0;
 }
 
-void assert_oid_type(const struct object_id *oid, enum object_type expect)
+void odb_assert_oid_type(struct object_database *odb,
+                        const struct object_id *oid, enum object_type expect)
 {
-       enum object_type type = oid_object_info(the_repository, oid, NULL);
+       enum object_type type = oid_object_info(odb->repo, oid, NULL);
        if (type < 0)
                die(_("%s is not a valid object"), oid_to_hex(oid));
        if (type != expect)
diff --git a/odb.h b/odb.h
index 941329c6943153e3fd6b029ea9c3ff7ac913d39b..13f5da45f54949bfc4979ff291f9098d4998a3c5 100644 (file)
--- a/odb.h
+++ b/odb.h
@@ -302,7 +302,8 @@ enum {
 int has_object(struct repository *r, const struct object_id *oid,
               unsigned flags);
 
-void assert_oid_type(const struct object_id *oid, enum object_type expect);
+void odb_assert_oid_type(struct object_database *odb,
+                        const struct object_id *oid, enum object_type expect);
 
 /*
  * Enabling the object read lock allows multiple threads to safely call the