From: Patrick Steinhardt Date: Thu, 12 Feb 2026 06:59:41 +0000 (+0100) Subject: odb: convert `odb_has_object()` flags into an enum X-Git-Tag: v2.54.0-rc0~141^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=732ec9b17b78a49496bfb796fcfe606f3a9f02f1;p=thirdparty%2Fgit.git 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 Signed-off-by: Junio C Hamano --- diff --git a/odb.c b/odb.c index d437aa8b06..2bbbfb344a 100644 --- a/odb.c +++ b/odb.c @@ -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; diff --git a/odb.h b/odb.h index e94cdc3665..f7368827ac 100644 --- a/odb.h +++ b/odb.h @@ -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);