Re: [PATCH] xdiff-interface: stop using the_repository
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 9, 2026, 11:15 UTC
- Message-ID
- <xmqqms1i6uc8.fsf@gitster.g>
- In-Reply-To
- <f58fa33d-b015-4339-819a-9d91be60cd0c@web.de>
René Scharfe <l.s.r@web.de> writes:
> Use the algorithm-agnostic is_null_oid() and push the dependency of > read_mmblob() on the_repository->objects to its callers. This allows it > to be used with arbitrary object databases.
Show 8 quoted lines
> diff --git a/xdiff-interface.c b/xdiff-interface.c > index 1a35556380..cd7493730b 100644 > --- a/xdiff-interface.c > +++ b/xdiff-interface.c > ... > -void read_mmblob(mmfile_t *ptr, const struct object_id *oid) > +void read_mmblob(mmfile_t *ptr, struct object_database *odb, > + const struct object_id *oid)
A possible alternative may be to pass "struct repository *" here, but this passes the (current) smallest piece of data necessary to drive the helper function odb_read_object(), so it would be fine.
Show 16 quoted lines
> {
> unsigned long size;
> enum object_type type;
>
> - if (oideq(oid, null_oid(the_hash_algo))) {
> + if (is_null_oid(oid)) {
> ptr->ptr = xstrdup("");
> ptr->size = 0;
> return;
> }
>
> - ptr->ptr = odb_read_object(the_repository->objects, oid, &type, &size);
> + ptr->ptr = odb_read_object(odb, oid, &type, &size);
> if (!ptr->ptr || type != OBJ_BLOB)
> die("unable to read blob object %s", oid_to_hex(oid));
> ptr->size = size;