Taylor Blau <me@xxxxxxxxxxxx> writes: > @@ -2055,17 +2055,18 @@ static int try_partial_reuse(struct bitmap_index *bitmap_git, > 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); We are now passing redundant piece of information "offset" that could be derived from two other parameters, which feels a bit icky, I suspect that try_partial_reuse() can be taught not to require pack_pos and instead work entirely on offset - The caller can pass a very large offset to represent "not actually in the pack" early return condition. - The logic to punt on a delta pointing backwards can be done by comparing the base_offset and offset, instead of comparing the base_pos and pack_pos. but it may not be worth the effort, unless we are going to do similar clean-up globally in all the codepaths that access packfiles. Thanks.