Two code changes to make "clang analyze" happy (#4292)

Summary:
Clang analyze is not happy in two pieces of code, with "Potential memory leak". No idea what the problem but slightly changing the code makes clang happy.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4292

Differential Revision: D9413555

Pulled By: siying

fbshipit-source-id: 9428c9d3664530c72129feefd135ee63d8386137
This commit is contained in:
Siying Dong 2018-08-20 17:31:28 -07:00 committed by Facebook Github Bot
parent dc064f302e
commit d5612b43de
2 changed files with 8 additions and 8 deletions

View File

@ -384,7 +384,7 @@ class VersionBuilder::Rep {
} }
std::atomic<size_t> next_file_meta_idx(0); std::atomic<size_t> next_file_meta_idx(0);
std::function<void()> load_handlers_func = [&]() { std::function<void()> load_handlers_func([&]() {
while (true) { while (true) {
size_t file_idx = next_file_meta_idx.fetch_add(1); size_t file_idx = next_file_meta_idx.fetch_add(1);
if (file_idx >= files_meta.size()) { if (file_idx >= files_meta.size()) {
@ -405,7 +405,7 @@ class VersionBuilder::Rep {
file_meta->table_reader_handle); file_meta->table_reader_handle);
} }
} }
}; });
std::vector<port::Thread> threads; std::vector<port::Thread> threads;
for (int i = 1; i < max_threads; i++) { for (int i = 1; i < max_threads; i++) {

View File

@ -258,12 +258,12 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
timer.Start(); timer.Start();
std::function<void(size_t)> adder = [&](size_t t) { std::function<void(size_t)> adder([&](size_t t) {
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) { for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
std_bloom.AddConcurrently( std_bloom.AddConcurrently(
Slice(reinterpret_cast<const char*>(&i), 8)); Slice(reinterpret_cast<const char*>(&i), 8));
} }
}; });
for (size_t t = 0; t < num_threads; ++t) { for (size_t t = 0; t < num_threads; ++t) {
threads.emplace_back(adder, t); threads.emplace_back(adder, t);
} }
@ -279,13 +279,13 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
timer.Start(); timer.Start();
std::function<void(size_t)> hitter = [&](size_t t) { std::function<void(size_t)> hitter([&](size_t t) {
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) { for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
bool f = bool f =
std_bloom.MayContain(Slice(reinterpret_cast<const char*>(&i), 8)); std_bloom.MayContain(Slice(reinterpret_cast<const char*>(&i), 8));
ASSERT_TRUE(f); ASSERT_TRUE(f);
} }
}; });
for (size_t t = 0; t < num_threads; ++t) { for (size_t t = 0; t < num_threads; ++t) {
threads.emplace_back(hitter, t); threads.emplace_back(hitter, t);
} }
@ -302,7 +302,7 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
timer.Start(); timer.Start();
std::atomic<uint32_t> false_positives(0); std::atomic<uint32_t> false_positives(0);
std::function<void(size_t)> misser = [&](size_t t) { std::function<void(size_t)> misser([&](size_t t) {
for (uint64_t i = num_keys + 1 + t; i <= 2 * num_keys; for (uint64_t i = num_keys + 1 + t; i <= 2 * num_keys;
i += num_threads) { i += num_threads) {
bool f = bool f =
@ -311,7 +311,7 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
++false_positives; ++false_positives;
} }
} }
}; });
for (size_t t = 0; t < num_threads; ++t) { for (size_t t = 0; t < num_threads; ++t) {
threads.emplace_back(misser, t); threads.emplace_back(misser, t);
} }