From 42b5494ec81f046e4eb41e1928c4ef615eaafd65 Mon Sep 17 00:00:00 2001 From: Peter Dillinger Date: Tue, 12 Nov 2019 15:27:19 -0800 Subject: [PATCH] Fix BloomFilterPolicy changes for unsigned char (ARM) (#6024) Summary: Bug in PR https://github.com/facebook/rocksdb/issues/5941 when char is unsigned that should only affect assertion on unused/invalid filter metadata. Pull Request resolved: https://github.com/facebook/rocksdb/pull/6024 Test Plan: on ARM: ./bloom_test && ./db_bloom_filter_test && ./block_based_filter_block_test && ./full_filter_block_test && ./partitioned_filter_block_test Differential Revision: D18461206 Pulled By: pdillinger fbshipit-source-id: 68a7c813a0b5791c05265edc03cdf52c78880e9a --- table/block_based/filter_policy.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/table/block_based/filter_policy.cc b/table/block_based/filter_policy.cc index 6a458f72b..a4b93596e 100644 --- a/table/block_based/filter_policy.cc +++ b/table/block_based/filter_policy.cc @@ -338,7 +338,8 @@ FilterBitsReader* BloomFilterPolicy::GetFilterBitsReader( return new AlwaysFalseFilter(); } - char raw_num_probes = contents.data()[len_with_meta - 5]; + int8_t raw_num_probes = + static_cast(contents.data()[len_with_meta - 5]); // NB: *num_probes > 30 and < 128 probably have not been used, because of // BloomFilterPolicy::initialize, unless directly calling // FullFilterBitsBuilder as an API, but we are leaving those cases in