diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2018-04-25 11:21:02 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-26 10:54:27 +0900 |
commit | 720aaa1a74a8cf5fcc35bb294013d30d218bec01 (patch) | |
tree | 12316a1673fa22866dd01106371835ab3c7f3565 | |
parent | 144f4948a134ed3eedeb87b688408c9d4da094ff (diff) | |
download | git-720aaa1a74a8cf5fcc35bb294013d30d218bec01.tar.gz |
packfile: add repository argument to packed_object_info
Add a repository argument to allow callers of packed_object_info to be
more specific about which repository to handle. 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: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/pack-objects.c | 3 | ||||
-rw-r--r-- | packfile.c | 4 | ||||
-rw-r--r-- | packfile.h | 3 | ||||
-rw-r--r-- | sha1_file.c | 2 |
4 files changed, 7 insertions, 5 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 8d4111f748..d65eb4a947 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -1572,7 +1572,8 @@ static void drop_reused_delta(struct object_entry *entry) oi.sizep = &entry->size; oi.typep = &entry->type; - if (packed_object_info(entry->in_pack, entry->in_pack_offset, &oi) < 0) { + if (packed_object_info(the_repository, entry->in_pack, + entry->in_pack_offset, &oi) < 0) { /* * We failed to get the info from this pack for some reason; * fall back to sha1_object_info, which may find another copy. diff --git a/packfile.c b/packfile.c index 3ecfba66af..5fa7d27d3b 100644 --- a/packfile.c +++ b/packfile.c @@ -1333,8 +1333,8 @@ static void add_delta_base_cache(struct packed_git *p, off_t base_offset, hashmap_add(&delta_base_cache, ent); } -int packed_object_info(struct packed_git *p, off_t obj_offset, - struct object_info *oi) +int packed_object_info_the_repository(struct packed_git *p, off_t obj_offset, + struct object_info *oi) { struct pack_window *w_curs = NULL; unsigned long size; diff --git a/packfile.h b/packfile.h index a92c0b241c..bc8d840b1b 100644 --- a/packfile.h +++ b/packfile.h @@ -125,7 +125,8 @@ extern void release_pack_memory(size_t); /* global flag to enable extra checks when accessing packed objects */ extern int do_check_packed_object_crc; -extern int packed_object_info(struct packed_git *pack, off_t offset, struct object_info *); +#define packed_object_info(r, p, o, oi) packed_object_info_##r(p, o, oi) +extern int packed_object_info_the_repository(struct packed_git *pack, off_t offset, struct object_info *); extern void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1); extern const struct packed_git *has_packed_and_bad(const unsigned char *sha1); diff --git a/sha1_file.c b/sha1_file.c index 93f25c6c6a..746ff8297a 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1307,7 +1307,7 @@ int oid_object_info_extended_the_repository(const struct object_id *oid, struct * information below, so return early. */ return 0; - rtype = packed_object_info(e.p, e.offset, oi); + rtype = packed_object_info(the_repository, e.p, e.offset, oi); if (rtype < 0) { mark_bad_packed_object(e.p, real->hash); return oid_object_info_extended(the_repository, real, oi, 0); |