instead of the specific one that was simpler but less efficient. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html