From c136a0d33a7bdab61c486a38b5b3442908c50b3e Mon Sep 17 00:00:00 2001 From: dmcgrath Date: Wed, 5 Sep 2012 22:27:34 -0700 Subject: [PATCH] Update bloomfilter.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Buffer size is 8 times larger than required. Reasoning:    'var n = Math.ceil(m / 32);' <- n is size in double words    ArrayBuffer takes size in bytes. Convert double word size to byte size = multiplying by 4. Current code converted double word back to bits. --- bloomfilter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bloomfilter.js b/bloomfilter.js index e3d1bae..ad7481b 100644 --- a/bloomfilter.js +++ b/bloomfilter.js @@ -11,7 +11,7 @@ this.k = k; var n = Math.ceil(m / 32); if (typedArrays) { - var buffer = new ArrayBuffer(32 * n), + var buffer = new ArrayBuffer(4 * n), kbytes = 1 << Math.ceil(Math.log(Math.ceil(Math.log(m) / Math.LN2 / 8)) / Math.LN2), array = kbytes === 1 ? Uint8Array : kbytes === 2 ? Uint16Array : Uint32Array, kbuffer = new ArrayBuffer(kbytes * k);