pack-bitmap: consolidate `find_object_pos()` success path

Both sides of `find_object_pos()` report success in the same way by
setting the optional `found` out-parameter and return the resolved
bitmap position.

Prepare for adding more bookkeeping around object-position lookups by
storing the result in a local `pos` variable and sharing the success
return path between the packlist and MIDX cases.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Taylor Blau 2026-05-27 15:55:59 -04:00 committed by Junio C Hamano
parent 3ea5fe8482
commit ece3465d44
1 changed files with 9 additions and 9 deletions

View File

@ -217,6 +217,7 @@ static uint32_t find_object_pos(struct bitmap_writer *writer,
const struct object_id *oid, int *found)
{
struct object_entry *entry;
uint32_t pos;

entry = packlist_find(writer->to_pack, oid);
if (entry) {
@ -224,23 +225,22 @@ static uint32_t find_object_pos(struct bitmap_writer *writer,
if (writer->midx)
base_objects = writer->midx->num_objects +
writer->midx->num_objects_in_base;

if (found)
*found = 1;
return oe_in_pack_pos(writer->to_pack, entry) + base_objects;
pos = oe_in_pack_pos(writer->to_pack, entry) + base_objects;
} else if (writer->midx) {
uint32_t at, pos;
uint32_t at;

if (!bsearch_midx(oid, writer->midx, &at))
goto missing;
if (midx_to_pack_pos(writer->midx, at, &pos) < 0)
goto missing;

if (found)
*found = 1;
return pos;
} else {
goto missing;
}

if (found)
*found = 1;
return pos;

missing:
if (found)
*found = 0;