summaryrefslogtreecommitdiff
path: root/pack-revindex.c
diff options
context:
space:
mode:
authorTaylor Blau <me@ttaylorr.com>2021-01-13 22:25:02 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-01-14 05:53:48 (GMT)
commit8389855a9b97c7447383e9938730d24054f33831 (patch)
tree7e9137a5a31cdebf3c0ec968b7187e3728e96a9a /pack-revindex.c
parent1c3855f33b66accf106a015a4f94c3b7775c54f9 (diff)
downloadgit-8389855a9b97c7447383e9938730d24054f33831.zip
git-8389855a9b97c7447383e9938730d24054f33831.tar.gz
git-8389855a9b97c7447383e9938730d24054f33831.tar.bz2
pack-revindex: remove unused 'find_revindex_position()'
Now that all 'find_revindex_position()' callers have been removed (and converted to the more descriptive 'offset_to_pack_pos()'), it is almost safe to get rid of 'find_revindex_position()' entirely. Almost, except for the fact that 'offset_to_pack_pos()' calls 'find_revindex_position()'. Inline 'find_revindex_position()' into 'offset_to_pack_pos()', and then remove 'find_revindex_position()' entirely. This is a straightforward refactoring with one minor snag. 'offset_to_pack_pos()' used to load the index before calling 'find_revindex_position()'. That means that by the time 'find_revindex_position()' starts executing, 'p->num_objects' can be safely read. After inlining, be careful to not read 'p->num_objects' until _after_ 'load_pack_revindex()' (which loads the index as a side-effect) has been called. Another small fix that is included is converting the upper- and lower-bounds to be unsigned's instead of ints. This dates back to 92e5c77c37 (revindex: export new APIs, 2013-10-24)--ironically, the last time we introduced new APIs here--but this unifies the types. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pack-revindex.c')
-rw-r--r--pack-revindex.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/pack-revindex.c b/pack-revindex.c
index 16baafb..282fe92 100644
--- a/pack-revindex.c
+++ b/pack-revindex.c
@@ -169,16 +169,23 @@ int load_pack_revindex(struct packed_git *p)
return 0;
}
-int find_revindex_position(struct packed_git *p, off_t ofs)
+int offset_to_pack_pos(struct packed_git *p, off_t ofs, uint32_t *pos)
{
- int lo = 0;
- int hi = p->num_objects + 1;
- const struct revindex_entry *revindex = p->revindex;
+ unsigned lo, hi;
+ const struct revindex_entry *revindex;
+
+ if (load_pack_revindex(p) < 0)
+ return -1;
+
+ lo = 0;
+ hi = p->num_objects + 1;
+ revindex = p->revindex;
do {
const unsigned mi = lo + (hi - lo) / 2;
if (revindex[mi].offset == ofs) {
- return mi;
+ *pos = mi;
+ return 0;
} else if (ofs < revindex[mi].offset)
hi = mi;
else
@@ -189,20 +196,6 @@ int find_revindex_position(struct packed_git *p, off_t ofs)
return -1;
}
-int offset_to_pack_pos(struct packed_git *p, off_t ofs, uint32_t *pos)
-{
- int ret;
-
- if (load_pack_revindex(p) < 0)
- return -1;
-
- ret = find_revindex_position(p, ofs);
- if (ret < 0)
- return ret;
- *pos = ret;
- return 0;
-}
-
uint32_t pack_pos_to_index(struct packed_git *p, uint32_t pos)
{
if (!p->revindex)