Commit 29a16005 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Ditch HSH_Compare() and just check the digest with memcmp()



git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@3507 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent f8d78ff8
......@@ -143,36 +143,6 @@ HSH_Freestore(struct object *o)
}
}
int
HSH_Compare(const struct sess *sp, const struct objhead *oh)
{
int i;
unsigned u, v;
const char *b;
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
CHECK_OBJ_NOTNULL(sp->wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(oh, OBJHEAD_MAGIC);
i = sp->lhashptr - oh->hashlen;
if (i)
return (i);
b = oh->hash;
for (u = 0; u < sp->ihashptr; u += 2) {
v = pdiff(sp->hashptr[u], sp->hashptr[u + 1]);
i = memcmp(sp->hashptr[u], b, v);
if (i)
return (i);
b += v;
i = '#' - *b++;
if (i)
return (i);
}
assert(*b == '\0');
b++;
assert(b == oh->hash + oh->hashlen);
return (0);
}
void
HSH_Copy(const struct sess *sp, struct objhead *oh)
{
......
......@@ -132,15 +132,7 @@ hcl_lookup(const struct sess *sp, struct objhead *noh)
Lck_Lock(&hp->mtx);
VTAILQ_FOREACH(oh, &hp->head, hoh_list) {
if (sp->lhashptr < oh->hashlen)
continue;
if (sp->lhashptr > oh->hashlen)
break;
if (oh->hoh_digest < digest)
continue;
if (oh->hoh_digest > digest)
break;
i = HSH_Compare(sp, oh);
i = memcmp(oh->digest, noh->digest, sizeof oh->digest);
if (i < 0)
continue;
if (i > 0)
......
......@@ -75,7 +75,7 @@ hsl_lookup(const struct sess *sp, struct objhead *noh)
CHECK_OBJ_NOTNULL(noh, OBJHEAD_MAGIC);
Lck_Lock(&hsl_mtx);
VTAILQ_FOREACH(oh, &hsl_head, hoh_list) {
i = HSH_Compare(sp, oh);
i = memcmp(oh->digest, noh->digest, sizeof oh->digest);
if (i < 0)
continue;
if (i > 0)
......
......@@ -51,7 +51,6 @@ struct hash_slinger {
/* cache_hash.c */
void HSH_Prealloc(struct sess *sp);
void HSH_Freestore(struct object *o);
int HSH_Compare(const struct sess *sp, const struct objhead *o);
void HSH_Copy(const struct sess *sp, struct objhead *o);
struct object *HSH_Lookup(struct sess *sp);
void HSH_Unbusy(const struct sess *sp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment