packfile: add repository argument to retry_bad_packed_offset

Add a repository argument to allow the callers of retry_bad_packed_offset 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>

Stefan Beller committed Apr 25, 2018 at 11:21 UTC 0df23781fedc5be6c0dc943e39107b7f1b265826
1 file changed +5 -3
packfile.c
+5 -3
@@ -1104,7 +1104,9 @@ static const unsigned char *get_delta_base_sha1(struct packed_git *p,
1104 return NULL;
1105 }
1106
1107 -static int retry_bad_packed_offset(struct packed_git *p, off_t obj_offset)
1107 +#define retry_bad_packed_offset(r, p, o) \
1108 + retry_bad_packed_offset_##r(p, o)
1109 +static int retry_bad_packed_offset_the_repository(struct packed_git *p, off_t obj_offset)
1110 {
1111 int type;
1112 struct revindex_entry *revidx;
@@ -1153,7 +1155,7 @@ static enum object_type packed_to_object_type(struct packed_git *p,
1155 if (type <= OBJ_NONE) {
1156 /* If getting the base itself fails, we first
1157 * retry the base, otherwise unwind */
1156 - type = retry_bad_packed_offset(p, base_offset);
1158 + type = retry_bad_packed_offset(the_repository, p, base_offset);
1159 if (type > OBJ_NONE)
1160 goto out;
1161 goto unwind;
@@ -1181,7 +1183,7 @@ out:
1183 unwind:
1184 while (poi_stack_nr) {
1185 obj_offset = poi_stack[--poi_stack_nr];
1184 - type = retry_bad_packed_offset(p, obj_offset);
1186 + type = retry_bad_packed_offset(the_repository, p, obj_offset);
1187 if (type > OBJ_NONE)
1188 goto out;
1189 }