struct bitmapped_pack *pack,
size_t bitmap_pos,
uint32_t pack_pos,
+ off_t offset,
struct bitmap *reuse,
struct pack_window **w_curs)
{
- off_t offset, delta_obj_offset;
+ off_t delta_obj_offset;
enum object_type type;
unsigned long size;
if (pack_pos >= pack->p->num_objects)
return -1; /* not actually in the pack */
- offset = delta_obj_offset = pack_pos_to_offset(pack->p, pack_pos);
+ delta_obj_offset = offset;
type = unpack_object_header(pack->p, w_curs, &offset, &size);
if (type < 0)
return -1; /* broken packfile, punt */
for (offset = 0; offset < BITS_IN_EWORD; offset++) {
size_t bit_pos;
uint32_t pack_pos;
+ off_t ofs;
if (word >> offset == 0)
break;
if (bitmap_is_midx(bitmap_git)) {
uint32_t midx_pos;
- off_t ofs;
midx_pos = pack_pos_to_midx(bitmap_git->midx, bit_pos);
ofs = nth_midxed_offset(bitmap_git->midx, midx_pos);
BUG("advanced beyond the end of pack %s (%"PRIuMAX" > %"PRIu32")",
pack_basename(pack->p), (uintmax_t)pack_pos,
pack->p->num_objects);
+
+ ofs = pack_pos_to_offset(pack->p, pack_pos);
}
if (try_partial_reuse(bitmap_git, pack, bit_pos,
- pack_pos, reuse, &w_curs) < 0) {
+ pack_pos, ofs, reuse, &w_curs) < 0) {
/*
* try_partial_reuse indicated we couldn't reuse
* any bits, so there is no point in trying more