Re: jk/loose-object-cache
From: Junio C Hamano <hidden>
Date: 2019-01-07 19:29:26
Subsystem:
the rest · Maintainer:
Linus Torvalds
Possibly related (same subject, not in this thread)
- 2019-01-06 · jk/loose-object-cache · René Scharfe <hidden>
René Scharfe [off-list ref] writes:
Am 28.12.2018 um 19:04 schrieb Junio C Hamano:quoted
* jk/loose-object-cache (2018-11-24) 10 commits... So this has hit master in the meantime. We discussed a sort performance fix in [1]; I'll reply with a short series containing a cleaned-up and rebased version as a follow-up.
Thanks. -- >8 -- Subject: [PATCH 4/3] sha1-file.c: make odb_load_loose_cache() static Now there is only a single internal caller to this helper function that knows the implementation detail of the cache too much, hide it from outside world by making it static. Suggested-by: Jeff King <redacted> Signed-off-by: Junio C Hamano <redacted> --- object-store.h | 7 ------- sha1-file.c | 24 +++++++++++++++--------- 2 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/object-store.h b/object-store.h
index 2fb6c0e4db..e16aa38cae 100644
--- a/object-store.h
+++ b/object-store.h@@ -47,13 +47,6 @@ void add_to_alternates_file(const char *dir); */ void add_to_alternates_memory(const char *dir); -/* - * Populate an odb's loose object cache for one particular subdirectory (i.e., - * the one that corresponds to the first byte of objects you're interested in, - * from 0 to 255 inclusive). - */ -void odb_load_loose_cache(struct object_directory *odb, int subdir_nr); - /* * Populate and return the loose object cache array corresponding to the * given object ID.
diff --git a/sha1-file.c b/sha1-file.c
index 2adc56cde4..936d216ad4 100644
--- a/sha1-file.c
+++ b/sha1-file.c@@ -2150,15 +2150,12 @@ static int append_loose_object(const struct object_id *oid, const char *path, return 0; } -struct oid_array *odb_loose_cache(struct object_directory *odb, - const struct object_id *oid) -{ - int subdir_nr = oid->hash[0]; - odb_load_loose_cache(odb, subdir_nr); - return &odb->loose_objects_cache[subdir_nr]; -} - -void odb_load_loose_cache(struct object_directory *odb, int subdir_nr) +/* + * Populate an odb's loose object cache for one particular subdirectory (i.e., + * the one that corresponds to the first byte of objects you're interested in, + * from 0 to 255 inclusive). + */ +static void odb_load_loose_cache(struct object_directory *odb, int subdir_nr) { struct strbuf buf = STRBUF_INIT;
@@ -2178,6 +2175,15 @@ void odb_load_loose_cache(struct object_directory *odb, int subdir_nr) strbuf_release(&buf); } +struct oid_array *odb_loose_cache(struct object_directory *odb, + const struct object_id *oid) +{ + int subdir_nr = oid->hash[0]; + odb_load_loose_cache(odb, subdir_nr); + return &odb->loose_objects_cache[subdir_nr]; +} + + void odb_clear_loose_cache(struct object_directory *odb) { int i;