зеркало из https://github.com/microsoft/git.git
pack-bitmap: drop "loaded" flag
In the early days of the bitmap code, there was a single
static bitmap_index struct that was used behind the scenes,
and any bitmap-related functions could lazily check
bitmap_git.loaded to see if they needed to read the on-disk
data.
But since 3ae5fa0768
(pack-bitmap: remove bitmap_git global
variable, 2018-06-07), the caller is responsible for the
lifetime of the bitmap_index struct, and we return it from
prepare_bitmap_git() and prepare_bitmap_walk(), both of
which load the on-disk data (or return NULL).
So outside of these functions, it's not possible to have a
bitmap_index for which the loaded flag is not true. Nor is
it possible to accidentally pass an already-loaded
bitmap_index to the loading function (which is static-local
to the file).
We can drop this unnecessary and confusing flag.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
715d0c50e1
Коммит
199c86be16
|
@ -91,8 +91,6 @@ struct bitmap_index {
|
||||||
|
|
||||||
/* Version of the bitmap index */
|
/* Version of the bitmap index */
|
||||||
unsigned int version;
|
unsigned int version;
|
||||||
|
|
||||||
unsigned loaded : 1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct ewah_bitmap *lookup_stored_bitmap(struct stored_bitmap *st)
|
static struct ewah_bitmap *lookup_stored_bitmap(struct stored_bitmap *st)
|
||||||
|
@ -306,7 +304,7 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
|
||||||
|
|
||||||
static int load_pack_bitmap(struct bitmap_index *bitmap_git)
|
static int load_pack_bitmap(struct bitmap_index *bitmap_git)
|
||||||
{
|
{
|
||||||
assert(bitmap_git->map && !bitmap_git->loaded);
|
assert(bitmap_git->map);
|
||||||
|
|
||||||
bitmap_git->bitmaps = kh_init_sha1();
|
bitmap_git->bitmaps = kh_init_sha1();
|
||||||
bitmap_git->ext_index.positions = kh_init_sha1_pos();
|
bitmap_git->ext_index.positions = kh_init_sha1_pos();
|
||||||
|
@ -321,7 +319,6 @@ static int load_pack_bitmap(struct bitmap_index *bitmap_git)
|
||||||
if (load_bitmap_entries_v1(bitmap_git) < 0)
|
if (load_bitmap_entries_v1(bitmap_git) < 0)
|
||||||
goto failed;
|
goto failed;
|
||||||
|
|
||||||
bitmap_git->loaded = 1;
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
failed:
|
failed:
|
||||||
|
@ -336,7 +333,7 @@ static int open_pack_bitmap(struct bitmap_index *bitmap_git)
|
||||||
struct packed_git *p;
|
struct packed_git *p;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
assert(!bitmap_git->map && !bitmap_git->loaded);
|
assert(!bitmap_git->map);
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_packed_git(the_repository); p; p = p->next) {
|
||||||
if (open_pack_bitmap_1(bitmap_git, p) == 0)
|
if (open_pack_bitmap_1(bitmap_git, p) == 0)
|
||||||
|
@ -738,7 +735,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs)
|
||||||
* from disk. this is the point of no return; after this the rev_list
|
* from disk. this is the point of no return; after this the rev_list
|
||||||
* becomes invalidated and we must perform the revwalk through bitmaps
|
* becomes invalidated and we must perform the revwalk through bitmaps
|
||||||
*/
|
*/
|
||||||
if (!bitmap_git->loaded && load_pack_bitmap(bitmap_git) < 0)
|
if (load_pack_bitmap(bitmap_git) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
object_array_clear(&revs->pending);
|
object_array_clear(&revs->pending);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче