odb: move initialization bit into `struct packfile_store`

The object database knows to skip re-initializing the list of packfiles
in case it's already been initialized. Whether or not that is the case
is tracked via a separate `initialized` bit that is stored in the object
database. With the introduction of the `struct packfile_store` we have a
better place to host this bit though.

Move it accordingly. While at it, convert the field into a boolean now
that we're allowed to use them in our code base.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Patrick Steinhardt 2025-09-23 12:17:02 +02:00 committed by Junio C Hamano
parent 535b7a667a
commit 3421cb56a8
3 changed files with 9 additions and 9 deletions

6
odb.h
View File

@ -169,12 +169,6 @@ struct object_database {
unsigned long approximate_object_count; unsigned long approximate_object_count;
unsigned approximate_object_count_valid : 1; unsigned approximate_object_count_valid : 1;


/*
* Whether packed_git has already been populated with this repository's
* packs.
*/
unsigned packed_git_initialized : 1;

/* /*
* Submodule source paths that will be added as additional sources to * Submodule source paths that will be added as additional sources to
* allow lookup of submodule objects via the main object database. * allow lookup of submodule objects via the main object database.

View File

@ -1027,7 +1027,7 @@ static void prepare_packed_git(struct repository *r)
{ {
struct odb_source *source; struct odb_source *source;


if (r->objects->packed_git_initialized) if (r->objects->packfiles->initialized)
return; return;


odb_prepare_alternates(r->objects); odb_prepare_alternates(r->objects);
@ -1038,7 +1038,7 @@ static void prepare_packed_git(struct repository *r)
rearrange_packed_git(r); rearrange_packed_git(r);


prepare_packed_git_mru(r); prepare_packed_git_mru(r);
r->objects->packed_git_initialized = 1; r->objects->packfiles->initialized = true;
} }


void reprepare_packed_git(struct repository *r) void reprepare_packed_git(struct repository *r)
@ -1060,7 +1060,7 @@ void reprepare_packed_git(struct repository *r)
odb_clear_loose_cache(source); odb_clear_loose_cache(source);


r->objects->approximate_object_count_valid = 0; r->objects->approximate_object_count_valid = 0;
r->objects->packed_git_initialized = 0; r->objects->packfiles->initialized = false;
prepare_packed_git(r); prepare_packed_git(r);
obj_read_unlock(); obj_read_unlock();
} }

View File

@ -63,6 +63,12 @@ struct packfile_store {
* the store. * the store.
*/ */
struct packed_git *packs; struct packed_git *packs;

/*
* Whether packfiles have already been populated with this store's
* packs.
*/
bool initialized;
}; };


/* /*