odb: get rid of the_repository in assert_oid_type()
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>
This commit is contained in:
committed by
Junio C Hamano
parent
bd52ea343d
commit
961038856b
@@ -48,7 +48,7 @@ static int parse_parent_arg_callback(const struct option *opt,
|
|||||||
if (repo_get_oid_commit(the_repository, arg, &oid))
|
if (repo_get_oid_commit(the_repository, arg, &oid))
|
||||||
die(_("not a valid object name %s"), arg);
|
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);
|
new_parent(lookup_commit(the_repository, &oid), parents);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
2
commit.c
2
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 */
|
/* Not having i18n.commitencoding is the same as having utf-8 */
|
||||||
encoding_is_utf8 = is_encoding_utf8(git_commit_encoding);
|
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))
|
if (memchr(msg, '\0', msg_len))
|
||||||
return error("a NUL byte in commit log message not allowed.");
|
return error("a NUL byte in commit log message not allowed.");
|
||||||
|
|||||||
5
odb.c
5
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;
|
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)
|
if (type < 0)
|
||||||
die(_("%s is not a valid object"), oid_to_hex(oid));
|
die(_("%s is not a valid object"), oid_to_hex(oid));
|
||||||
if (type != expect)
|
if (type != expect)
|
||||||
|
|||||||
3
odb.h
3
odb.h
@@ -302,7 +302,8 @@ enum {
|
|||||||
int has_object(struct repository *r, const struct object_id *oid,
|
int has_object(struct repository *r, const struct object_id *oid,
|
||||||
unsigned flags);
|
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
|
* Enabling the object read lock allows multiple threads to safely call the
|
||||||
|
|||||||
Reference in New Issue
Block a user