<pre style='margin:0'>
Andrew Stromnov (stromnov) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/be4f437ea98605d6d311a45b6c72dadbeca60578">https://github.com/macports/macports-ports/commit/be4f437ea98605d6d311a45b6c72dadbeca60578</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit be4f437ea98605d6d311a45b6c72dadbeca60578
</span>Author: Andrey Stromnov <stromnov@macports.org>
AuthorDate: Fri Oct 9 11:55:25 2020 +0300

<span style='display:block; white-space:pre;color:#404040;'>    rocksdb: update to 6.11.4
</span>---
 databases/rocksdb/Portfile                   |  19 ++-
 databases/rocksdb/files/patch-9cc25190e.diff | 214 +++++++++++++++++++++++++++
 2 files changed, 226 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/rocksdb/Portfile b/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6f99dd194a2..d2e3f3287aa 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,7 +3,7 @@
</span> PortSystem          1.0
 PortGroup           github 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        facebook rocksdb 5.14.3 rocksdb-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        facebook rocksdb 6.11.4 v
</span> 
 revision            0
 categories          databases devel
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,21 +17,26 @@ long_description    {*}${description}
</span> 
 homepage            http://rocksdb.org/
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  c13201c5cbbab777f365eeeee4e862ebcf95eb14 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  8ec6d1d1c268a73ae9a276c88fb638a6b4d02126ec280b73d45393723457e049 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    4688041
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  839746d82c8222b3fdc11002595463805744705a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  491ade5445faace9368f3690568b43ca6c7f26f0687aa53b09d1eb38a193fa62 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    6211022
</span> 
 depends_lib-append  port:gflags \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:snappy \
</span>                     port:zlib \
                     port:bzip2 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:zstd \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:snappy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:lz4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zstd
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   patch-Makefile.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-Makefile.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-9cc25190e.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2011
</span> 
 use_configure       no
 
 variant universal {}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> build.env           CC=${configure.cc} \
                     CXX=${configure.cxx} \
                     CFLAGS=[get_canonical_archflags cc] \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/rocksdb/files/patch-9cc25190e.diff b/databases/rocksdb/files/patch-9cc25190e.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..13e3c65ae23
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/rocksdb/files/patch-9cc25190e.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,214 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9cc25190e1ba6fc66bbd0d47caaf043d75839b6f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: sdong <siying.d@fb.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 24 Jun 2020 16:20:55 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Test CircleCI with CLANG-10 (#7025)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Summary:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It's useful to build RocksDB using a more recent clang version in CI. Add a CircleCI build and fix some issues with it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Pull Request resolved: https://github.com/facebook/rocksdb/pull/7025
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Test Plan: See all tests pass.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Reviewed By: pdillinger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Differential Revision: D22215700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fbshipit-source-id: 914a729c2cd3f3ac4a627cc0ac58d4691dca2168
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .circleci/config.yml      | 15 +++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ db/db_iter_stress_test.cc | 11 +++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ db/db_options_test.cc     |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ env/env_test.cc           |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ options/options_helper.cc |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ table/table_test.cc       | 10 +++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/ldb_cmd_test.cc     |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 7 files changed, 33 insertions(+), 15 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/.circleci/config.yml b/.circleci/config.yml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a6a7f879d3..a2408facd2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- .circleci/config.yml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ .circleci/config.yml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,18 @@ jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       - run: sudo apt-get install -y clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       - run: CC=clang CXX=clang++ USE_CLANG=1 PORTABLE=1 make all -j32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  build-linux-clang10-no-test:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    machine:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      image: ubuntu-1604:201903-01
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    resource_class: 2xlarge
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    steps:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - checkout # check out the code in the project directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - run: sudo sh -c 'echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" >> /etc/apt/sources.list'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - run: sudo sh -c 'echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main" >> /etc/apt/sources.list'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - run: sudo apt-get update -y
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - run: sudo apt-get install -y clang-10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - run: CC=clang-10 CXX=clang++-10 ROCKSDB_DISABLE_ALIGNED_NEW=1 USE_CLANG=1 make all -j32 # aligned new doesn't work for reason we haven't figured out
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   build-linux-cmake:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     machine:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       image: ubuntu-1604:201903-01
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,6 +137,9 @@ workflows:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   build-linux-clang-no-test:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       - build-linux-clang-no-test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  build-linux-clang10-no-test:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      - build-linux-clang10-no-test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   build-linux-cmake:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       - build-linux-cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/db/db_iter_stress_test.cc b/db/db_iter_stress_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 57cd9866e4..484bb0b45a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- db/db_iter_stress_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ db/db_iter_stress_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,7 +97,8 @@ struct StressTestIterator : public InternalIterator {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool MaybeFail() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (rnd->Next() >=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        std::numeric_limits<uint64_t>::max() * error_probability) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        static_cast<double>(std::numeric_limits<uint64_t>::max()) *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            error_probability) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (rnd->Next() % 2) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +115,8 @@ struct StressTestIterator : public InternalIterator {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void MaybeMutate() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (rnd->Next() >=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        std::numeric_limits<uint64_t>::max() * mutation_probability) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        static_cast<double>(std::numeric_limits<uint64_t>::max()) *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            mutation_probability) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     do {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,8 +128,9 @@ struct StressTestIterator : public InternalIterator {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (data->hidden.empty()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         hide_probability = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      bool do_hide =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          rnd->Next() < std::numeric_limits<uint64_t>::max() * hide_probability;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      bool do_hide = rnd->Next() <
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                     static_cast<double>(std::numeric_limits<uint64_t>::max()) *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         hide_probability;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (do_hide) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Hide a random entry.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         size_t idx = rnd->Next() % data->entries.size();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/db/db_options_test.cc b/db/db_options_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cc91824611..8cc09ec546 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- db/db_options_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ db/db_options_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,7 @@ class DBOptionsTest : public DBTestBase {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::unordered_map<std::string, std::string> options_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StringToMap(options_str, &options_map);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::unordered_map<std::string, std::string> mutable_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto opt : db_options_type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& opt : db_options_type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (opt.second.IsMutable() && opt.second.ShouldSerialize()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         mutable_map[opt.first] = options_map[opt.first];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,7 +57,7 @@ class DBOptionsTest : public DBTestBase {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::unordered_map<std::string, std::string> options_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StringToMap(options_str, &options_map);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::unordered_map<std::string, std::string> mutable_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto opt : cf_options_type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& opt : cf_options_type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (opt.second.IsMutable() && opt.second.ShouldSerialize()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         mutable_map[opt.first] = options_map[opt.first];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/env/env_test.cc b/env/env_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d62f69192e..e3bc7141b6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- env/env_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ env/env_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1120,7 +1120,7 @@ TEST_P(EnvPosixTestWithParam, RandomAccessUniqueIDConcurrent) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Collect and check whether the IDs are unique.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::unordered_set<std::string> ids;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const std::string fname : fnames) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const std::string& fname : fnames) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       std::unique_ptr<RandomAccessFile> file;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       std::string unique_id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ASSERT_OK(env_->NewRandomAccessFile(fname, &file, soptions));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1134,7 +1134,7 @@ TEST_P(EnvPosixTestWithParam, RandomAccessUniqueIDConcurrent) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Delete the files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const std::string fname : fnames) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const std::string& fname : fnames) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ASSERT_OK(env_->DeleteFile(fname));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/options/options_helper.cc b/options/options_helper.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b01d389a40..396a829789 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- options/options_helper.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ options/options_helper.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -656,7 +656,7 @@ Status GetStringFromStruct(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::string* opt_string) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   assert(opt_string);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   opt_string->clear();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for (const auto iter : type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (const auto& iter : type_info) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const auto& opt_info = iter.second;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // If the option is no longer used in rocksdb and marked as deprecated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // we skip it in the serialization.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/table/table_test.cc b/table/table_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 589b48788f..5899ae945c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- table/table_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ table/table_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,7 +228,7 @@ class BlockConstructor: public Constructor {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     block_ = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BlockBuilder builder(table_options.block_restart_interval);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       builder.Add(kv.first, kv.second);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Open the block
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -352,7 +352,7 @@ class TableConstructor: public Constructor {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         TablePropertiesCollectorFactory::Context::kUnknownColumnFamily,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         file_writer_.get()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (convert_to_internal_key_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ParsedInternalKey ikey(kv.first, kMaxSequenceNumber, kTypeValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         std::string encoded;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -487,7 +487,7 @@ class MemTableConstructor: public Constructor {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                              kMaxSequenceNumber, 0 /* column_family_id */);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     memtable_->Ref();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int seq = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       memtable_->Add(seq, kTypeValue, kv.first, kv.second);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       seq++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -548,7 +548,7 @@ class DBConstructor: public Constructor {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     delete db_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     db_ = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NewDB();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& kv : kv_map) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       WriteBatch batch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       batch.Put(kv.first, kv.second);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       EXPECT_TRUE(db_->Write(WriteOptions(), &batch).ok());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1226,7 +1226,7 @@ class FileChecksumTestHelper {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Status WriteKVAndFlushTable() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (const auto kv : kv_map_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (const auto& kv : kv_map_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (convert_to_internal_key_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ParsedInternalKey ikey(kv.first, kMaxSequenceNumber, kTypeValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         std::string encoded;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/ldb_cmd_test.cc b/tools/ldb_cmd_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e485ab551c..69f7f82739 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tools/ldb_cmd_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tools/ldb_cmd_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,7 +76,7 @@ TEST_F(LdbCmdTest, HexToStringBadInputs) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const vector<string> badInputs = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "0xZZ", "123", "0xx5", "0x111G", "0x123", "Ox12", "0xT", "0x1Q1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for (const auto badInput : badInputs) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (const auto& badInput : badInputs) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ROCKSDB_NAMESPACE::LDBCommand::HexToString(badInput);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       std::cerr << "Should fail on bad hex value: " << badInput << "\n";
</span></pre><pre style='margin:0'>

</pre>