]> git.ipfire.org Git - thirdparty/git.git/commitdiff
odb: fix unnecessary call to `find_cached_object()`
authorPatrick Steinhardt <ps@pks.im>
Fri, 10 Apr 2026 12:12:33 +0000 (14:12 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 May 2026 19:50:44 +0000 (04:50 +0900)
The function `odb_pretend_object()` writes an object into the in-memory
object database source. The effect of this is that the object will now
become readable, but it won't ever be persisted to disk.

Before storing the object, we first verify whether the object already
exists. This is done by calling `odb_has_object()` to check all sources,
followed by `find_cached_object()` to check whether we have already
stored the object in our in-memory source.

This is unnecessary though, as `odb_has_object()` already checks the
in-memory source transitively via:

  - `odb_has_object()`
  - `odb_read_object_info_extended()`
  - `do_oid_object_info_extended()`
  - `find_cached_object()`

Drop the explicit call to `find_cached_object()`.

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

diff --git a/odb.c b/odb.c
index 1d65825ed3978a935a9f497a36e9738fbdc769d5..ea3fcf5e118d7261b4f6e61063d52d0f18599105 100644 (file)
--- a/odb.c
+++ b/odb.c
@@ -774,8 +774,7 @@ int odb_pretend_object(struct object_database *odb,
        char *co_buf;
 
        hash_object_file(odb->repo->hash_algo, buf, len, type, oid);
-       if (odb_has_object(odb, oid, 0) ||
-           find_cached_object(odb, oid))
+       if (odb_has_object(odb, oid, 0))
                return 0;
 
        ALLOC_GROW(odb->inmemory_objects->objects,