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 <sbel...@google.com>
---
 packfile.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/packfile.c b/packfile.c
index 5fa7d27d3b..2876e04bb1 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1469,8 +1469,10 @@ struct unpack_entry_stack_ent {
        unsigned long size;
 };
 
-static void *read_object(const struct object_id *oid, enum object_type *type,
-                        unsigned long *size)
+#define read_object(r, o, t, s) read_object_##r(o, t, s)
+static void *read_object_the_repository(const struct object_id *oid,
+                                       enum object_type *type,
+                                       unsigned long *size)
 {
        struct object_info oi = OBJECT_INFO_INIT;
        void *content;
@@ -1614,7 +1616,7 @@ void *unpack_entry(struct packed_git *p, off_t obj_offset,
                                      oid_to_hex(&base_oid), 
(uintmax_t)obj_offset,
                                      p->pack_name);
                                mark_bad_packed_object(p, base_oid.hash);
-                               base = read_object(&base_oid, &type, 
&base_size);
+                               base = read_object(the_repository, &base_oid, 
&type, &base_size);
                                external_base = base;
                        }
                }
-- 
2.17.0.484.g0c8726318c-goog

Reply via email to