[PATCH 4/4] replace_object: use the new generic "sha1_pos" function to lookup sha1
From: Christian Couder <hidden>
Date: 2016-06-15 22:46:33
instead of the specific one that was simpler but less efficient. Signed-off-by: Christian Couder <redacted> --- replace_object.c | 24 +++++++++--------------- 1 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/replace_object.c b/replace_object.c
index 1227214..eb59604 100644
--- a/replace_object.c
+++ b/replace_object.c@@ -1,4 +1,5 @@ #include "cache.h" +#include "sha1-lookup.h" #include "refs.h" static struct replace_object {
@@ -7,23 +8,16 @@ static struct replace_object { static int replace_object_alloc, replace_object_nr; +static const unsigned char *replace_sha1_access(size_t index, void *table) +{ + struct replace_object **replace = table; + return replace[index]->sha1[0]; +} + static int replace_object_pos(const unsigned char *sha1) { - int lo, hi; - lo = 0; - hi = replace_object_nr; - while (lo < hi) { - int mi = (lo + hi) / 2; - struct replace_object *rep = replace_object[mi]; - int cmp = hashcmp(sha1, rep->sha1[0]); - if (!cmp) - return mi; - if (cmp < 0) - hi = mi; - else - lo = mi + 1; - } - return -lo - 1; + return sha1_pos(sha1, replace_object, replace_object_nr, + replace_sha1_access); } static int register_replace_object(struct replace_object *replace,
--
1.6.2.2.404.ge96f3.dirty