r3507 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Mon Jan 12 14:51:33 CET 2009


Author: phk
Date: 2009-01-12 14:51:33 +0100 (Mon, 12 Jan 2009)
New Revision: 3507

Modified:
   trunk/varnish-cache/bin/varnishd/cache_hash.c
   trunk/varnish-cache/bin/varnishd/hash_classic.c
   trunk/varnish-cache/bin/varnishd/hash_simple_list.c
   trunk/varnish-cache/bin/varnishd/hash_slinger.h
Log:
Ditch HSH_Compare() and just check the digest with memcmp()



Modified: trunk/varnish-cache/bin/varnishd/cache_hash.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_hash.c	2009-01-12 13:19:14 UTC (rev 3506)
+++ trunk/varnish-cache/bin/varnishd/cache_hash.c	2009-01-12 13:51:33 UTC (rev 3507)
@@ -143,36 +143,6 @@
 	}
 }
 
-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)
 {

Modified: trunk/varnish-cache/bin/varnishd/hash_classic.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/hash_classic.c	2009-01-12 13:19:14 UTC (rev 3506)
+++ trunk/varnish-cache/bin/varnishd/hash_classic.c	2009-01-12 13:51:33 UTC (rev 3507)
@@ -132,15 +132,7 @@
 
 	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)

Modified: trunk/varnish-cache/bin/varnishd/hash_simple_list.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/hash_simple_list.c	2009-01-12 13:19:14 UTC (rev 3506)
+++ trunk/varnish-cache/bin/varnishd/hash_simple_list.c	2009-01-12 13:51:33 UTC (rev 3507)
@@ -75,7 +75,7 @@
 	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)

Modified: trunk/varnish-cache/bin/varnishd/hash_slinger.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/hash_slinger.h	2009-01-12 13:19:14 UTC (rev 3506)
+++ trunk/varnish-cache/bin/varnishd/hash_slinger.h	2009-01-12 13:51:33 UTC (rev 3507)
@@ -51,7 +51,6 @@
 /* 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);



More information about the varnish-commit mailing list