]> git.ipfire.org Git - thirdparty/git.git/commit
pack-bitmap-write.c: free existing bitmaps
authorTaylor Blau <me@ttaylorr.com>
Tue, 24 Aug 2021 16:15:56 +0000 (12:15 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 24 Aug 2021 20:21:13 +0000 (13:21 -0700)
commit1d7f7f242c89947c3f0bc0ade651e614a2f0a38f
treee396065a9717d178af2a273efc903b60163e2e14
parent3ba3d0621b6822e974f06123db9394b33e454ed7
pack-bitmap-write.c: free existing bitmaps

When writing a new bitmap, the bitmap writer code attempts to read the
existing bitmap (if one is present). This is done in order to quickly
permute the bits of any bitmaps for commits which appear in the existing
bitmap, and were also selected for the new bitmap.

But since this code was added in 341fa34887 (pack-bitmap-write: use
existing bitmaps, 2020-12-08), the resources associated with opening an
existing bitmap were never released.

It's fine to ignore this, but it's bad hygiene. It will also cause a
problem for the multi-pack-index builtin, which will be responsible not
only for writing bitmaps, but also for expiring any old multi-pack
bitmaps.

If an existing bitmap was reused here, it will also be expired. That
will cause a problem on platforms which require file resources to be
closed before unlinking them, like Windows. Avoid this by ensuring we
close reused bitmaps with free_bitmap_index() before removing them.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-bitmap-write.c