To construct the path for a MIDX bitmap, midx_bitmap_filename() calls get_midx_filename(), and uses the result as an argument to xstrfmt(). But get_midx_filename() also uses xstrfmt, and it assumes that the caller will free the results. get_midx_filename() could take a strbuf and write to that, but it would make more work for every other caller. midx_bitmap_filename() could store the result of get_midx_filename() in a temporary variable which is freed before returning. But that intermediate allocation feels wasteful. Since this function is simple enough, we can instead "inline" its implementation into the xstrfmt call itself. That is a little gross, but arguably better than allocating memory unnecessarily. Signed-off-by: Taylor Blau <me@xxxxxxxxxxxx> --- pack-bitmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pack-bitmap.c b/pack-bitmap.c index f47a0a7db4..d292e81af1 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -292,8 +292,8 @@ static int load_bitmap_entries_v1(struct bitmap_index *index) char *midx_bitmap_filename(struct multi_pack_index *midx) { - return xstrfmt("%s-%s.bitmap", - get_midx_filename(midx->object_dir), + return xstrfmt("%s/pack/multi-pack-index-%s.bitmap", + midx->object_dir, hash_to_hex(get_midx_checksum(midx))); } -- 2.33.0.96.g73915697e6