[experimental-ims] f6536dac Use scalbn(3) rather than exp2(3), it should be faster and more portable.
Geoff Simmons
geoff at varnish-cache.org
Mon Jan 9 21:52:28 CET 2012
commit f6536dac9a6c9fdda4236e0ad92cfc4cdd6dd34a
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Nov 1 09:41:00 2011 +0000
Use scalbn(3) rather than exp2(3), it should be faster and more portable.
Fixes #1046
diff --git a/bin/varnishd/cache_dir_random.c b/bin/varnishd/cache_dir_random.c
index f18c7d7..d6570ed 100644
--- a/bin/varnishd/cache_dir_random.c
+++ b/bin/varnishd/cache_dir_random.c
@@ -91,7 +91,7 @@ vdi_random_sha(const char *input, ssize_t len)
SHA256_Init(&ctx);
SHA256_Update(&ctx, input, len);
SHA256_Final(sign, &ctx);
- return (vle32dec(sign) / exp2(32));
+ return (scalbn(vle32dec(sign), -32));
}
/*
@@ -113,11 +113,11 @@ vdi_random_init_seed(const struct vdi_random *vs, const struct sess *sp)
break;
case c_hash:
AN(sp->digest);
- retval = vle32dec(sp->digest) / exp2(32);
+ retval = scalbn(vle32dec(sp->digest), -32);
break;
case c_random:
default:
- retval = random() / exp2(31);
+ retval = scalbn(random(), -31);
break;
}
return (retval);
More information about the varnish-commit
mailing list