Browse Source

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>
maint
René Scharfe 6 years ago committed by Junio C Hamano
parent
commit
d4e19e5163
  1. 3
      object-store.h
  2. 2
      object.c
  3. 7
      packfile.c
  4. 7
      sha1-file.c

3
object-store.h

@ -61,6 +61,9 @@ void odb_load_loose_cache(struct object_directory *odb, int subdir_nr); @@ -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;

2
object.c

@ -485,7 +485,7 @@ struct raw_object_store *raw_object_store_new(void) @@ -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);
}


7
packfile.c

@ -994,11 +994,8 @@ void reprepare_packed_git(struct repository *r) @@ -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;

7
sha1-file.c

@ -2178,6 +2178,13 @@ void odb_load_loose_cache(struct object_directory *odb, int subdir_nr) @@ -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,

Loading…
Cancel
Save