]> git.ipfire.org Git - thirdparty/git.git/commit
object-file: hide internals when we need to reprepare loose sources
authorPatrick Steinhardt <ps@pks.im>
Mon, 3 Nov 2025 07:42:02 +0000 (08:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Nov 2025 20:18:46 +0000 (12:18 -0800)
commitbe659c97eae3b68e38b71f0a67067dede23903b5
treed1964ece9ec66306ac485214f4bffb2f5e93b1be
parent90a93f9dea88532623ef7422dbc21d8dc70a58dd
object-file: hide internals when we need to reprepare loose sources

There are two different situations where we have to clear the cache of
loose objects:

  - When freeing the loose object source itself to avoid memory leaks.

  - When repreparing the loose object source so that any potentially-
    stale data is getting evicted from the cache.

The former is already handled by `odb_source_loose_free()`. But the
latter case is still done manually by in `odb_reprepare()`, so we are
leaking internals into that code.

Introduce a new `odb_source_loose_reprepare()` function as an equivalent
to `packfile_store_prepare()` to hide these implementation details.
Furthermore, while at it, rename the function `odb_clear_loose_cache()`
to `odb_source_loose_clear()`.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object-file.c
object-file.h
odb.c