From 90d835507581324d0449f1ded4f56a8b16f20bf7 Mon Sep 17 00:00:00 2001 From: xiusir Date: Tue, 28 Feb 2017 10:29:44 -0800 Subject: [PATCH] Fix the wrong address for PREFETCH in DynamicBloom::Prefetch Summary: - Change data_[b] to data_[b / 8] in DynamicBloom::Prefetch, as b means the b-th bit in data_ and data_[b / 8] is the proper byte in data_. Closes https://github.com/facebook/rocksdb/pull/1935 Differential Revision: D4628696 Pulled By: siying fbshipit-source-id: bc5a0c6 --- util/dynamic_bloom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/dynamic_bloom.h b/util/dynamic_bloom.h index 909db54c8..3418e9295 100644 --- a/util/dynamic_bloom.h +++ b/util/dynamic_bloom.h @@ -128,7 +128,7 @@ inline bool DynamicBloom::MayContain(const Slice& key) const { inline void DynamicBloom::Prefetch(uint32_t h) { if (kNumBlocks != 0) { uint32_t b = ((h >> 11 | (h << 21)) % kNumBlocks) * (CACHE_LINE_SIZE * 8); - PREFETCH(&(data_[b]), 0, 3); + PREFETCH(&(data_[b / 8]), 0, 3); } }