write_reused_pack_one(): convert to new revindex API

Replace direct revindex accesses with calls to 'pack_pos_to_offset()' and 'pack_pos_to_index()'. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Jan 13, 2021 at 17:23 UTC 66cbd3e2fbb552aa7dc51a805fbbb9174abc5ccb
1 file changed +10 -4
builtin/pack-objects.c
+10 -4
@@ -868,8 +868,8 @@ static void write_reused_pack_one(size_t pos, struct hashfile *out,
868 enum object_type type;
869 unsigned long size;
870
871 - offset = reuse_packfile->revindex[pos].offset;
872 - next = reuse_packfile->revindex[pos + 1].offset;
871 + offset = pack_pos_to_offset(reuse_packfile, pos);
872 + next = pack_pos_to_offset(reuse_packfile, pos + 1);
873
874 record_reused_object(offset, offset - hashfile_total(out));
875
@@ -889,11 +889,17 @@ static void write_reused_pack_one(size_t pos, struct hashfile *out,
889
890 /* Convert to REF_DELTA if we must... */
891 if (!allow_ofs_delta) {
892 - int base_pos = find_revindex_position(reuse_packfile, base_offset);
892 + uint32_t base_pos;
893 struct object_id base_oid;
894
895 + if (offset_to_pack_pos(reuse_packfile, base_offset, &base_pos) < 0)
896 + die(_("expected object at offset %"PRIuMAX" "
897 + "in pack %s"),
898 + (uintmax_t)base_offset,
899 + reuse_packfile->pack_name);
900 +
901 nth_packed_object_id(&base_oid, reuse_packfile,
896 - reuse_packfile->revindex[base_pos].nr);
902 + pack_pos_to_index(reuse_packfile, base_pos));
903
904 len = encode_in_pack_object_header(header, sizeof(header),
905 OBJ_REF_DELTA, size);