pack-bitmap: allow passing payloads to `show_reachable_fn()`
The `show_reachable_fn` callback is used by a couple of functions to present reachable objects to the caller. The function does not provide a way for the caller to pass a payload though, which is functionality that we'll require in a subsequent commit. Change the callback type to accept a payload and adapt all callsites accordingly. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>main
parent
8fa9fe171a
commit
3d45483846
|
@ -1736,7 +1736,8 @@ static int add_object_entry(const struct object_id *oid, enum object_type type,
|
||||||
static int add_object_entry_from_bitmap(const struct object_id *oid,
|
static int add_object_entry_from_bitmap(const struct object_id *oid,
|
||||||
enum object_type type,
|
enum object_type type,
|
||||||
int flags UNUSED, uint32_t name_hash,
|
int flags UNUSED, uint32_t name_hash,
|
||||||
struct packed_git *pack, off_t offset)
|
struct packed_git *pack, off_t offset,
|
||||||
|
void *payload UNUSED)
|
||||||
{
|
{
|
||||||
display_progress(progress_state, ++nr_seen);
|
display_progress(progress_state, ++nr_seen);
|
||||||
|
|
||||||
|
|
|
@ -429,7 +429,8 @@ static int show_object_fast(
|
||||||
int exclude UNUSED,
|
int exclude UNUSED,
|
||||||
uint32_t name_hash UNUSED,
|
uint32_t name_hash UNUSED,
|
||||||
struct packed_git *found_pack UNUSED,
|
struct packed_git *found_pack UNUSED,
|
||||||
off_t found_offset UNUSED)
|
off_t found_offset UNUSED,
|
||||||
|
void *payload UNUSED)
|
||||||
{
|
{
|
||||||
fprintf(stdout, "%s\n", oid_to_hex(oid));
|
fprintf(stdout, "%s\n", oid_to_hex(oid));
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -1625,7 +1625,7 @@ static void show_extended_objects(struct bitmap_index *bitmap_git,
|
||||||
(obj->type == OBJ_TAG && !revs->tag_objects))
|
(obj->type == OBJ_TAG && !revs->tag_objects))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
show_reach(&obj->oid, obj->type, 0, eindex->hashes[i], NULL, 0);
|
show_reach(&obj->oid, obj->type, 0, eindex->hashes[i], NULL, 0, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1663,7 +1663,8 @@ static void init_type_iterator(struct ewah_or_iterator *it,
|
||||||
static void show_objects_for_type(
|
static void show_objects_for_type(
|
||||||
struct bitmap_index *bitmap_git,
|
struct bitmap_index *bitmap_git,
|
||||||
enum object_type object_type,
|
enum object_type object_type,
|
||||||
show_reachable_fn show_reach)
|
show_reachable_fn show_reach,
|
||||||
|
void *payload)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
|
@ -1715,7 +1716,7 @@ static void show_objects_for_type(
|
||||||
if (bitmap_git->hashes)
|
if (bitmap_git->hashes)
|
||||||
hash = get_be32(bitmap_git->hashes + index_pos);
|
hash = get_be32(bitmap_git->hashes + index_pos);
|
||||||
|
|
||||||
show_reach(&oid, object_type, 0, hash, pack, ofs);
|
show_reach(&oid, object_type, 0, hash, pack, ofs, payload);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2518,13 +2519,13 @@ void traverse_bitmap_commit_list(struct bitmap_index *bitmap_git,
|
||||||
{
|
{
|
||||||
assert(bitmap_git->result);
|
assert(bitmap_git->result);
|
||||||
|
|
||||||
show_objects_for_type(bitmap_git, OBJ_COMMIT, show_reachable);
|
show_objects_for_type(bitmap_git, OBJ_COMMIT, show_reachable, NULL);
|
||||||
if (revs->tree_objects)
|
if (revs->tree_objects)
|
||||||
show_objects_for_type(bitmap_git, OBJ_TREE, show_reachable);
|
show_objects_for_type(bitmap_git, OBJ_TREE, show_reachable, NULL);
|
||||||
if (revs->blob_objects)
|
if (revs->blob_objects)
|
||||||
show_objects_for_type(bitmap_git, OBJ_BLOB, show_reachable);
|
show_objects_for_type(bitmap_git, OBJ_BLOB, show_reachable, NULL);
|
||||||
if (revs->tag_objects)
|
if (revs->tag_objects)
|
||||||
show_objects_for_type(bitmap_git, OBJ_TAG, show_reachable);
|
show_objects_for_type(bitmap_git, OBJ_TAG, show_reachable, NULL);
|
||||||
|
|
||||||
show_extended_objects(bitmap_git, revs, show_reachable);
|
show_extended_objects(bitmap_git, revs, show_reachable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,8 @@ typedef int (*show_reachable_fn)(
|
||||||
int flags,
|
int flags,
|
||||||
uint32_t hash,
|
uint32_t hash,
|
||||||
struct packed_git *found_pack,
|
struct packed_git *found_pack,
|
||||||
off_t found_offset);
|
off_t found_offset,
|
||||||
|
void *payload);
|
||||||
|
|
||||||
struct bitmap_index;
|
struct bitmap_index;
|
||||||
|
|
||||||
|
|
|
@ -341,7 +341,8 @@ static int mark_object_seen(const struct object_id *oid,
|
||||||
int exclude UNUSED,
|
int exclude UNUSED,
|
||||||
uint32_t name_hash UNUSED,
|
uint32_t name_hash UNUSED,
|
||||||
struct packed_git *found_pack UNUSED,
|
struct packed_git *found_pack UNUSED,
|
||||||
off_t found_offset UNUSED)
|
off_t found_offset UNUSED,
|
||||||
|
void *payload UNUSED)
|
||||||
{
|
{
|
||||||
struct object *obj = lookup_object_by_type(the_repository, oid, type);
|
struct object *obj = lookup_object_by_type(the_repository, oid, type);
|
||||||
if (!obj)
|
if (!obj)
|
||||||
|
|
Loading…
Reference in New Issue