Skip to content

Commit

Permalink
packfile: add repository argument to packed_object_info
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Stefan Beller <[email protected]>
Reviewed-by: Jonathan Tan <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
jrn authored and gitster committed Apr 26, 2018
1 parent 144f494 commit 720aaa1
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 5 deletions.
3 changes: 2 additions & 1 deletion builtin/pack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions packfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion packfile.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion sha1_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 720aaa1

Please sign in to comment.