packed_object_info(): use object_id for returning delta base

If a caller sets the object_info.delta_base_sha1 to a non-NULL pointer,
we'll write the oid of the object's delta base to it. But we can
increase our type safety by switching this to a real object_id struct.
All of our callers are just pointing into the hash member of an
object_id anyway, so there's no inconvenience.

Note that we do still keep it as a pointer-to-struct, because the NULL
sentinel value tells us whether the caller is even interested in the
information.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2020-02-23 23:36:56 -05:00
committed by Junio C Hamano
parent 63f4a7fc01
commit b99b6bcc57
5 changed files with 11 additions and 11 deletions

View File

@ -1556,7 +1556,7 @@ int packed_object_info(struct repository *r, struct packed_git *p,
}
}
if (oi->delta_base_sha1) {
if (oi->delta_base_oid) {
if (type == OBJ_OFS_DELTA || type == OBJ_REF_DELTA) {
const unsigned char *base;
@ -1567,9 +1567,9 @@ int packed_object_info(struct repository *r, struct packed_git *p,
goto out;
}
hashcpy(oi->delta_base_sha1, base);
hashcpy(oi->delta_base_oid->hash, base);
} else
hashclr(oi->delta_base_sha1);
oidclr(oi->delta_base_oid);
}
oi->whence = in_delta_base_cache(p, obj_offset) ? OI_DBCACHED :