git/refs
Patrick Steinhardt 71c871b48d refs: implement releasing ref storages
Ref storages are typically only initialized once for `the_repository`
and then never released. Until now we got away with that without causing
memory leaks because `the_repository` stays reachable, and because the
ref backend is reachable via `the_repository` its memory basically never
leaks.

This is about to change though because of the upcoming migration logic,
which will create a secondary ref storage. In that case, we will either
have to release the old or new ref storage to avoid leaks.

Implement a new `release` callback and expose it via a new
`ref_storage_release()` function.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-05-17 10:33:37 -07:00
..
debug.c refs: implement releasing ref storages 2024-05-17 10:33:37 -07:00
files-backend.c refs: implement releasing ref storages 2024-05-17 10:33:37 -07:00
iterator.c refs: always treat iterators as ordered 2024-02-21 09:58:06 -08:00
packed-backend.c refs: implement releasing ref storages 2024-05-17 10:33:37 -07:00
packed-backend.h refs: adjust names for `init` and `init_db` callbacks 2024-05-17 10:33:36 -07:00
ref-cache.c refs: always treat iterators as ordered 2024-02-21 09:58:06 -08:00
ref-cache.h hash-ll.h: split out of hash.h to remove dependency on repository.h 2023-04-24 12:47:32 -07:00
refs-internal.h refs: implement releasing ref storages 2024-05-17 10:33:37 -07:00
reftable-backend.c refs: implement releasing ref storages 2024-05-17 10:33:37 -07:00