[PATCH v2 5/5] odb: convert `odb_has_object()` flags into an enum
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Feb 12, 2026, 06:59 UTC
- Message-ID
- <20260212-b4-pks-read-object-info-flags-v2-5-3bfa9bb149ef@pks.im>
- In-Reply-To
- <20260212-b4-pks-read-object-info-flags-v2-0-3bfa9bb149ef@pks.im>
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> --- odb.c | 2 +- odb.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
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);
-- 2.53.0.295.g64333814d3.dirty