Re: [PATCH 2/7] odb/source-inmemory: signal missing objects via positive return
From: Junio C Hamano <hidden>
Date: 2026-08-18 18:05:36
Patrick Steinhardt [off-list ref] writes:
quoted hunk ↗ jump to hunk
The in-memory source returns a negative value from its `read_object_info()` callback when the object in question does not exist. Adapt the callback to return a positive value for missing objects according to the new calling convention. Signed-off-by: Patrick Steinhardt <redacted> --- odb/source-inmemory.c | 2 +- t/unit-tests/u-odb-inmemory.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)diff --git a/odb/source-inmemory.c b/odb/source-inmemory.c index 3e71611b8e..57183daf4d 100644 --- a/odb/source-inmemory.c +++ b/odb/source-inmemory.c@@ -66,7 +66,7 @@ static int odb_source_inmemory_read_object_info(struct odb_source *source, object = find_cached_object(inmemory, oid); if (!object) - return -1; + return 1;
Let's not define "any positive value means this single thing: it
does not exist" and then return a mysterious and unspecified hard
coded constant like this. Instead perhaps something along this
line?
enum odb_roi_status {
ODB_ROI_SUCCESS = 0,
ODB_ROI_MISSING = 1,
ODB_ROI_IO_ERROR = -1,
...
};
As I already said, I personally prefer to define MISSING also as
a negative value.