packfile: add repository argument to read_object
Add a repository argument to allow the callers of read_object to be more specific about which repository to act on. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time. Signed-off-by: Stefan Beller <sbeller@google.com> Reviewed-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller committed
Apr 25, 2018 at 11:21 UTC
5da6534dd6ef72970989aa5a4194e13e6a587bd6
1 file changed
+5
-3
packfile.c
+5
-3
@@ -1469,8 +1469,10 @@ struct unpack_entry_stack_ent {
1469
unsigned long size;
1470
};
1471
1472
-static void *read_object(const struct object_id *oid, enum object_type *type,
1473
- unsigned long *size)
1472
+#define read_object(r, o, t, s) read_object_##r(o, t, s)
1473
+static void *read_object_the_repository(const struct object_id *oid,
1474
+ enum object_type *type,
1475
+ unsigned long *size)
1476
{
1477
struct object_info oi = OBJECT_INFO_INIT;
1478
void *content;
@@ -1614,7 +1616,7 @@ void *unpack_entry(struct packed_git *p, off_t obj_offset,
1616
oid_to_hex(&base_oid), (uintmax_t)obj_offset,
1617
p->pack_name);
1618
mark_bad_packed_object(p, base_oid.hash);
1617
- base = read_object(&base_oid, &type, &base_size);
1619
+ base = read_object(the_repository, &base_oid, &type, &base_size);
1620
external_base = base;
1621
}
1622
}