packfile: define and use bsearch_pack()
The method bsearch_hash() generalizes binary searches using a fanout table. The only consumer is currently find_pack_entry_one(). It requires a bit of pointer arithmetic to align the fanout table and the lookup table depending on the pack-index version. Extract the pack-index pointer arithmetic to a new method, bsearch_pack(), so this can be re-used in other code paths. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
626fd982a3
commit
3d475f46a8
@ -78,6 +78,14 @@ extern struct packed_git *add_packed_git(const char *path, size_t path_len, int
|
||||
*/
|
||||
extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr);
|
||||
|
||||
/*
|
||||
* Perform binary search on a pack-index for a given oid. Packfile is expected to
|
||||
* have a valid pack-index.
|
||||
*
|
||||
* See 'bsearch_hash' for more information.
|
||||
*/
|
||||
int bsearch_pack(const struct object_id *oid, const struct packed_git *p, uint32_t *result);
|
||||
|
||||
/*
|
||||
* Return the SHA-1 of the nth object within the specified packfile.
|
||||
* Open the index if it is not already open. The return value points
|
||||
|
Reference in New Issue
Block a user