odb: convert odb_has_object() flags into an enum

Following the reason in the preceding commit, convert the
`odb_has_object()` flags into an enum.

With this change, we would have catched the misuse of `odb_has_object()`
that was fixed in a preceding commit as the compiler would have
generated a warning:

  ../builtin/backfill.c:71:9: error: implicit conversion from enumeration type 'enum odb_object_info_flag' to different enumeration type 'enum odb_has_object_flag' [-Werror,-Wenum-conversion]
     70 |                 if (!odb_has_object(ctx->repo->objects, &list->oid[i],
        |                      ~~~~~~~~~~~~~~
     71 |                                     OBJECT_INFO_FOR_PREFETCH))
        |                                     ^~~~~~~~~~~~~~~~~~~~~~~~
  1 error generated.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2026-02-12 07:59:41 +01:00
committed by Junio C Hamano
parent f6516a5241
commit 732ec9b17b
2 changed files with 3 additions and 3 deletions

2
odb.c
View File

@@ -964,7 +964,7 @@ void *odb_read_object_peeled(struct object_database *odb,
}
int odb_has_object(struct object_database *odb, const struct object_id *oid,
unsigned flags)
enum has_object_flags flags)
{
unsigned object_info_flags = 0;

4
odb.h
View File

@@ -395,7 +395,7 @@ int odb_read_object_info(struct object_database *odb,
const struct object_id *oid,
unsigned long *sizep);
enum {
enum has_object_flags {
/* Retry packed storage after checking packed and loose storage */
HAS_OBJECT_RECHECK_PACKED = (1 << 0),
/* Allow fetching the object in case the repository has a promisor remote. */
@@ -408,7 +408,7 @@ enum {
*/
int odb_has_object(struct object_database *odb,
const struct object_id *oid,
unsigned flags);
enum has_object_flags flags);
int odb_freshen_object(struct object_database *odb,
const struct object_id *oid);