diff options
author | René Scharfe <l.s.r@web.de> | 2019-01-06 17:45:39 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-08 18:40:19 +0100 |
commit | d4e19e516325e211cedb070a487453ad2d1043be (patch) | |
tree | aab53eee02f9c5219df3d85060fc9cdff9763fe7 | |
parent | object-store: factor out odb_loose_cache() (diff) | |
download | git-d4e19e516325e211cedb070a487453ad2d1043be.tar.xz git-d4e19e516325e211cedb070a487453ad2d1043be.zip |
object-store: factor out odb_clear_loose_cache()
Add and use a function for emptying the loose object cache, so callers
don't have to know any of its implementation details.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | object-store.h | 3 | ||||
-rw-r--r-- | object.c | 2 | ||||
-rw-r--r-- | packfile.c | 7 | ||||
-rw-r--r-- | sha1-file.c | 7 |
4 files changed, 13 insertions, 6 deletions
diff --git a/object-store.h b/object-store.h index 7236c571c0..709bf856b6 100644 --- a/object-store.h +++ b/object-store.h @@ -61,6 +61,9 @@ void odb_load_loose_cache(struct object_directory *odb, int subdir_nr); struct oid_array *odb_loose_cache(struct object_directory *odb, const struct object_id *oid); +/* Empty the loose object cache for the specified object directory. */ +void odb_clear_loose_cache(struct object_directory *odb); + struct packed_git { struct packed_git *next; struct list_head mru; @@ -485,7 +485,7 @@ struct raw_object_store *raw_object_store_new(void) static void free_object_directory(struct object_directory *odb) { free(odb->path); - oid_array_clear(&odb->loose_objects_cache); + odb_clear_loose_cache(odb); free(odb); } diff --git a/packfile.c b/packfile.c index 8c6b47cc77..0fe9c21bf1 100644 --- a/packfile.c +++ b/packfile.c @@ -994,11 +994,8 @@ void reprepare_packed_git(struct repository *r) { struct object_directory *odb; - for (odb = r->objects->odb; odb; odb = odb->next) { - oid_array_clear(&odb->loose_objects_cache); - memset(&odb->loose_objects_subdir_seen, 0, - sizeof(odb->loose_objects_subdir_seen)); - } + for (odb = r->objects->odb; odb; odb = odb->next) + odb_clear_loose_cache(odb); r->objects->approximate_object_count_valid = 0; r->objects->packed_git_initialized = 0; diff --git a/sha1-file.c b/sha1-file.c index cb8583b634..2f965b2688 100644 --- a/sha1-file.c +++ b/sha1-file.c @@ -2178,6 +2178,13 @@ void odb_load_loose_cache(struct object_directory *odb, int subdir_nr) strbuf_release(&buf); } +void odb_clear_loose_cache(struct object_directory *odb) +{ + oid_array_clear(&odb->loose_objects_cache); + memset(&odb->loose_objects_subdir_seen, 0, + sizeof(odb->loose_objects_subdir_seen)); +} + static int check_stream_sha1(git_zstream *stream, const char *hdr, unsigned long size, |