You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by to...@apache.org on 2016/01/22 03:32:46 UTC

[1/3] incubator-kudu git commit: Convert collection iteration to c++11 foreach

Repository: incubator-kudu
Updated Branches:
  refs/heads/master 113d5b092 -> 8260093b9


Convert collection iteration to c++11 foreach

This patch was created using the clang-modernize tool with a few manual
tweaks.

Change-Id: Ie81b207672e9da628da95630e22dc73811740589
Reviewed-on: http://gerrit.cloudera.org:8080/1799
Tested-by: Internal Jenkins
Reviewed-by: Todd Lipcon <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/47d69dd6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/47d69dd6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/47d69dd6

Branch: refs/heads/master
Commit: 47d69dd6e66e61966ec83a44e3f25d90c9ed60cc
Parents: 113d5b0
Author: Dan Burkert <da...@cloudera.com>
Authored: Tue Jan 19 18:20:17 2016 -0800
Committer: Todd Lipcon <to...@apache.org>
Committed: Fri Jan 22 01:26:08 2016 +0000

----------------------------------------------------------------------
 src/kudu/benchmarks/tpch/tpch1.cc               | 15 +++---
 src/kudu/codegen/module_builder.cc              |  4 +-
 src/kudu/common/id_mapping.h                    | 10 ++--
 src/kudu/common/partition.cc                    |  2 +-
 src/kudu/common/row.h                           | 11 +---
 src/kudu/common/schema.cc                       |  4 +-
 src/kudu/consensus/log_anchor_registry-test.cc  |  8 +--
 src/kudu/consensus/log_anchor_registry.cc       |  4 +-
 src/kudu/consensus/log_cache.cc                 |  8 +--
 src/kudu/consensus/log_util.cc                  |  5 +-
 src/kudu/consensus/raft_consensus_state.cc      |  7 ++-
 src/kudu/gutil/charmap.h                        |  4 +-
 src/kudu/gutil/map-util.h                       |  5 +-
 src/kudu/gutil/strings/escaping.cc              | 13 +++--
 src/kudu/gutil/strings/join.cc                  | 14 +++---
 src/kudu/gutil/strings/serialize.cc             | 45 ++++++++---------
 src/kudu/gutil/strings/split.cc                 |  8 +--
 src/kudu/gutil/strings/split.h                  |  4 +-
 src/kudu/gutil/strings/split_internal.h         |  4 +-
 src/kudu/gutil/strings/strip.cc                 |  6 +--
 src/kudu/gutil/strings/util.cc                  |  4 +-
 .../alter_table-randomized-test.cc              |  8 +--
 src/kudu/integration-tests/mini_cluster.cc      |  4 +-
 src/kudu/rpc/mt-rpc-test.cc                     |  8 +--
 .../tablet/mt-rowset_delta_compaction-test.cc   | 16 +++---
 src/kudu/tablet/mvcc.cc                         |  6 +--
 src/kudu/tablet/tablet-test-util.h              |  4 +-
 src/kudu/util/auto_release_pool.h               |  5 +-
 src/kudu/util/blocking_queue-test.cc            |  5 +-
 src/kudu/util/debug/trace_event_impl.cc         | 53 +++++++++-----------
 src/kudu/util/mem_tracker.cc                    | 32 ++++++------
 src/kudu/util/memenv/memenv.cc                  |  4 +-
 src/kudu/util/rle-test.cc                       |  8 +--
 src/kudu/util/string_case.cc                    |  7 ++-
 34 files changed, 158 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/benchmarks/tpch/tpch1.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/tpch1.cc b/src/kudu/benchmarks/tpch/tpch1.cc
index f96f56b..73fb295 100644
--- a/src/kudu/benchmarks/tpch/tpch1.cc
+++ b/src/kudu/benchmarks/tpch/tpch1.cc
@@ -205,13 +205,12 @@ void Tpch1(RpcLineItemDAO *dao) {
     }
   }
   LOG(INFO) << "Result: ";
-  for (slice_map_map::iterator ii = results.begin();
-       ii != results.end(); ++ii) {
-    const SliceMapKey returnflag = ii->first;
-    slice_map *maps = ii->second;
-    for (slice_map::iterator jj = maps->begin(); jj != maps->end(); ++jj) {
-      const SliceMapKey linestatus = jj->first;
-      Result *r = jj->second;
+  for (const auto& result : results) {
+    const SliceMapKey returnflag = result.first;
+    const auto* maps = result.second;
+    for (const auto& map : *maps) {
+      const SliceMapKey linestatus = map.first;
+      Result* r = map.second;
       double avg_q = static_cast<double>(r->l_quantity) / r->count;
       double avg_ext_p = r->l_extendedprice / r->count;
       double avg_discount = r->l_discount / r->count;
@@ -219,7 +218,7 @@ void Tpch1(RpcLineItemDAO *dao) {
                    linestatus.slice.ToString() << ", " <<
                    r->l_quantity << ", " <<
                    StringPrintf("%.2f", r->l_extendedprice) << ", " <<
-                   // TODO those two are missing at the moment, might want to chagne Result
+                   // TODO those two are missing at the moment, might want to change Result
                    // sum(l_extendedprice * (1 - l_discount))
                    // sum(l_extendedprice * (1 - l_discount) * (1 + l_tax))
                    StringPrintf("%.2f", avg_q) << ", " <<

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/codegen/module_builder.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/module_builder.cc b/src/kudu/codegen/module_builder.cc
index 533f238..f43f439 100644
--- a/src/kudu/codegen/module_builder.cc
+++ b/src/kudu/codegen/module_builder.cc
@@ -110,8 +110,8 @@ string ToString(const Function* f) {
 }
 
 bool ModuleContains(const Module& m, const Function* fptr) {
-  for (Module::const_iterator it = m.begin(); it != m.end(); ++it) {
-    if (&*it == fptr) return true;
+  for (const auto& function : m) {
+    if (&function == fptr) return true;
   }
   return false;
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/common/id_mapping.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/id_mapping.h b/src/kudu/common/id_mapping.h
index 624201b..d7ef9d5 100644
--- a/src/kudu/common/id_mapping.h
+++ b/src/kudu/common/id_mapping.h
@@ -145,16 +145,16 @@ class IdMapping {
     mask_ = new_capacity - 1;
     entries.swap(entries_);
 
-    for (int i = 0; i < entries.size(); i++) {
-      if (entries[i].first != kNoEntry) {
-        set(entries[i].first, entries[i].second);
+    for (const auto& entry : entries) {
+      if (entry.first != kNoEntry) {
+        set(entry.first, entry.second);
       }
     }
   }
 
   static void ClearMap(std::vector<value_type>* v) {
-    for (int i = 0; i < v->size(); i++) {
-      (*v)[i] = std::make_pair(kNoEntry, kNoEntry);
+    for (auto& entry : *v) {
+      entry = std::make_pair(kNoEntry, kNoEntry);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/common/partition.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition.cc b/src/kudu/common/partition.cc
index 14de73e..4ce5e5d 100644
--- a/src/kudu/common/partition.cc
+++ b/src/kudu/common/partition.cc
@@ -407,7 +407,7 @@ Status PartitionSchema::DecodeHashBuckets(Slice* encoded_key,
         Substitute("expected encoded hash key to be at least $0 bytes (only found $1)",
                    hash_components_size, encoded_key->size()));
   }
-  for (int i = 0; i < hash_bucket_schemas_.size(); i++) {
+  for (const auto& schema : hash_bucket_schemas_) {
     uint32_t big_endian;
     memcpy(&big_endian, encoded_key->data(), sizeof(uint32_t));
     buckets->push_back(BigEndian::ToHost32(big_endian));

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/common/row.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/row.h b/src/kudu/common/row.h
index a501274..655dbc3 100644
--- a/src/kudu/common/row.h
+++ b/src/kudu/common/row.h
@@ -234,11 +234,7 @@ class RowProjector {
     DCHECK_SCHEMA_EQ(*projection_, *dst_row->schema());
 
     // Copy directly from base Data
-    for (vector<ProjectionIdxMapping>::const_iterator it =
-           base_cols_mapping_.begin();
-         it != base_cols_mapping_.end();
-         ++it) {
-      const ProjectionIdxMapping& base_mapping = *it;
+    for (const auto& base_mapping : base_cols_mapping_) {
       typename RowType1::Cell src_cell = src_row.cell(base_mapping.second);
       typename RowType2::Cell dst_cell = dst_row->cell(base_mapping.first);
       RETURN_NOT_OK(CopyCell(src_cell, &dst_cell, dst_arena));
@@ -248,10 +244,7 @@ class RowProjector {
     DCHECK(adapter_cols_mapping_.size() == 0) << "Value Adapter not supported yet";
 
     // Fill with Defaults
-    for (vector<size_t>::const_iterator it = projection_defaults_.begin();
-         it != projection_defaults_.end();
-         ++it) {
-      size_t proj_idx = *it;
+    for (auto proj_idx : projection_defaults_) {
       const ColumnSchema& col_proj = projection_->column(proj_idx);
       const void *vdefault = FOR_READ ? col_proj.read_default_value() :
                                         col_proj.write_default_value();

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/common/schema.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/schema.cc b/src/kudu/common/schema.cc
index 0f16ffb..bd83088 100644
--- a/src/kudu/common/schema.cc
+++ b/src/kudu/common/schema.cc
@@ -388,8 +388,8 @@ void SchemaBuilder::Reset(const Schema& schema) {
   cols_ = schema.cols_;
   col_ids_ = schema.col_ids_;
   num_key_columns_ = schema.num_key_columns_;
-  for (int i = 0; i < cols_.size(); ++i) {
-    col_names_.insert(cols_[i].name());
+  for (const auto& column : cols_) {
+    col_names_.insert(column.name());
   }
 
   if (col_ids_.empty()) {

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/consensus/log_anchor_registry-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_anchor_registry-test.cc b/src/kudu/consensus/log_anchor_registry-test.cc
index db2c394..817fe0b 100644
--- a/src/kudu/consensus/log_anchor_registry-test.cc
+++ b/src/kudu/consensus/log_anchor_registry-test.cc
@@ -54,8 +54,8 @@ TEST_F(LogAnchorRegistryTest, TestDuplicateInserts) {
   // Register a bunch of anchors at log index 1.
   const int num_anchors = 10;
   LogAnchor anchors[num_anchors];
-  for (int i = 0; i < num_anchors; i++) {
-    reg->Register(1, test_name, &anchors[i]);
+  for (auto& anchor : anchors) {
+    reg->Register(1, test_name, &anchor);
   }
 
   // We should see index 1 as the earliest registered.
@@ -64,8 +64,8 @@ TEST_F(LogAnchorRegistryTest, TestDuplicateInserts) {
   ASSERT_EQ(1, first_index);
 
   // Unregister them all.
-  for (int i = 0; i < num_anchors; i++) {
-    ASSERT_OK(reg->Unregister(&anchors[i]));
+  for (auto& anchor : anchors) {
+    ASSERT_OK(reg->Unregister(&anchor));
   }
 
   // We should see none registered.

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/consensus/log_anchor_registry.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_anchor_registry.cc b/src/kudu/consensus/log_anchor_registry.cc
index f858617..0ad9a7d 100644
--- a/src/kudu/consensus/log_anchor_registry.cc
+++ b/src/kudu/consensus/log_anchor_registry.cc
@@ -40,8 +40,8 @@ LogAnchorRegistry::~LogAnchorRegistry() {
 }
 
 void LogAnchorRegistry::Register(int64_t log_index,
-                                  const string& owner,
-                                  LogAnchor* anchor) {
+                                 const string& owner,
+                                 LogAnchor* anchor) {
   boost::lock_guard<simple_spinlock> l(lock_);
   RegisterUnlocked(log_index, owner, anchor);
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/consensus/log_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache.cc b/src/kudu/consensus/log_cache.cc
index 26358df..3700357 100644
--- a/src/kudu/consensus/log_cache.cc
+++ b/src/kudu/consensus/log_cache.cc
@@ -145,8 +145,8 @@ Status LogCache::AppendOperations(const vector<ReplicateRefPtr>& msgs,
 
 
   int64_t mem_required = 0;
-  for (int i = 0; i < msgs.size(); i++) {
-    mem_required += msgs[i]->get()->SpaceUsed();
+  for (const auto& msg : msgs) {
+    mem_required += msg->get()->SpaceUsed();
   }
 
   // Try to consume the memory. If it can't be consumed, we may need to evict.
@@ -173,8 +173,8 @@ Status LogCache::AppendOperations(const vector<ReplicateRefPtr>& msgs,
     borrowed_memory = parent_tracker_->LimitExceeded();
   }
 
-  for (int i = 0; i < msgs.size(); i++) {
-    InsertOrDie(&cache_,  msgs[i]->get()->id().index(), msgs[i]);
+  for (const auto& msg : msgs) {
+    InsertOrDie(&cache_,  msg->get()->id().index(), msg);
   }
 
   // We drop the lock during the AsyncAppendReplicates call, since it may block

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/consensus/log_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_util.cc b/src/kudu/consensus/log_util.cc
index 5e79bfd..f699be0 100644
--- a/src/kudu/consensus/log_util.cc
+++ b/src/kudu/consensus/log_util.cc
@@ -777,11 +777,10 @@ void CreateBatchFromAllocatedOperations(const vector<consensus::ReplicateRefPtr>
                                         gscoped_ptr<LogEntryBatchPB>* batch) {
   gscoped_ptr<LogEntryBatchPB> entry_batch(new LogEntryBatchPB);
   entry_batch->mutable_entry()->Reserve(msgs.size());
-  for (size_t i = 0; i < msgs.size(); i++) {
-    consensus::ReplicateMsg* msg = msgs[i]->get();
+  for (const auto& msg : msgs) {
     LogEntryPB* entry_pb = entry_batch->add_entry();
     entry_pb->set_type(log::REPLICATE);
-    entry_pb->set_allocated_replicate(msg);
+    entry_pb->set_allocated_replicate(msg->get());
   }
   batch->reset(entry_batch.release());
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/consensus/raft_consensus_state.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus_state.cc b/src/kudu/consensus/raft_consensus_state.cc
index 52659b2..6a2c34e 100644
--- a/src/kudu/consensus/raft_consensus_state.cc
+++ b/src/kudu/consensus/raft_consensus_state.cc
@@ -372,12 +372,11 @@ Status ReplicaState::CancelPendingTransactions() {
 
     LOG_WITH_PREFIX_UNLOCKED(INFO) << "Trying to abort " << pending_txns_.size()
                                    << " pending transactions.";
-    for (IndexToRoundMap::iterator iter = pending_txns_.begin();
-         iter != pending_txns_.end(); iter++) {
-      const scoped_refptr<ConsensusRound>& round = (*iter).second;
+    for (const auto& txn : pending_txns_) {
+      const scoped_refptr<ConsensusRound>& round = txn.second;
       // We cancel only transactions whose applies have not yet been triggered.
       LOG_WITH_PREFIX_UNLOCKED(INFO) << "Aborting transaction as it isn't in flight: "
-                            << (*iter).second->replicate_msg()->ShortDebugString();
+                            << txn.second->replicate_msg()->ShortDebugString();
       round->NotifyReplicationFinished(Status::Aborted("Transaction aborted"));
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/charmap.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/charmap.h b/src/kudu/gutil/charmap.h
index 1a38a96..2698bbe 100644
--- a/src/kudu/gutil/charmap.h
+++ b/src/kudu/gutil/charmap.h
@@ -64,8 +64,8 @@ class Charmap {
   }
 
   bool IsZero() const {
-    for (int i = 0; i < 8; ++i) {
-      if (m_[i] != 0)
+    for (uint32 c : m_) {
+      if (c != 0)
         return false;
     }
     return true;

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/map-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/map-util.h b/src/kudu/gutil/map-util.h
index 565a9e2..0682c27 100644
--- a/src/kudu/gutil/map-util.h
+++ b/src/kudu/gutil/map-util.h
@@ -762,9 +762,8 @@ void AppendValuesFromMap(const MapContainer& map_container,
   if (value_container->empty()) {
     value_container->reserve(map_container.size());
   }
-  for (typename MapContainer::const_iterator it = map_container.begin();
-       it != map_container.end(); ++it) {
-    value_container->push_back(it->second);
+  for (const auto& entry : map_container) {
+    value_container->push_back(entry.second);
   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/escaping.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/escaping.cc b/src/kudu/gutil/strings/escaping.cc
index 0a52a40..cf49359 100644
--- a/src/kudu/gutil/strings/escaping.cc
+++ b/src/kudu/gutil/strings/escaping.cc
@@ -1648,8 +1648,7 @@ void EscapeFileName(const StringPiece& src, string* dst) {
   // Reserve at least src.size() chars
   dst->reserve(dst->size() + src.size());
 
-  for (int i = 0; i < src.size(); ++i) {
-    const char c = src[i];
+  for (char c : src) {
     // We do not use "isalpha" because we want the behavior to be
     // independent of the current locale settings.
     if (escape_file_name_exceptions.contains(c)) {
@@ -1751,10 +1750,10 @@ static void b2a_hex_t(const unsigned char* b, T a, int num) {
 
 string b2a_bin(const string& b, bool byte_order_msb) {
   string result;
-  for (int byte_offset = 0; byte_offset < b.size(); ++byte_offset) {
+  for (char c : b) {
     for (int bit_offset = 0; bit_offset < 8; ++bit_offset) {
       int x = (byte_order_msb) ? 7-bit_offset : bit_offset;
-      result.append(1, (b[byte_offset] & (1 << x)) ? '1' : '0');
+      result.append(1, (c & (1 << x)) ? '1' : '0');
     }
   }
   return result;
@@ -1814,15 +1813,15 @@ string ShellEscape(StringPiece src) {
   } else {
     // needs double quote escaping
     string result = "\"";
-    for (size_t i = 0; i < src.size(); ++i) {
-      switch (src[i]) {
+    for (char c : src) {
+      switch (c) {
         case '\\':
         case '$':
         case '"':
         case '`':
           result.push_back('\\');
       };
-      result.push_back(src[i]);
+      result.push_back(c);
     }
     result.push_back('"');
     return result;

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/join.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/join.cc b/src/kudu/gutil/strings/join.cc
index 5454261..c0035e1 100644
--- a/src/kudu/gutil/strings/join.cc
+++ b/src/kudu/gutil/strings/join.cc
@@ -172,17 +172,17 @@ void JoinCSVLineWithDelimiter(const vector<string>& cols, char delimiter,
   // whitespace (ie ascii_isspace() returns true), escape all double-quotes and
   // bracket the string in double quotes. string.rbegin() evaluates to the last
   // character of the string.
-  for (int i = 0; i < cols.size(); ++i) {
-    if ((cols[i].find_first_of(escape_chars) != string::npos) ||
-        (!cols[i].empty() && (ascii_isspace(*cols[i].begin()) ||
-                              ascii_isspace(*cols[i].rbegin())))) {
+  for (const auto& col : cols) {
+    if ((col.find_first_of(escape_chars) != string::npos) ||
+        (!col.empty() && (ascii_isspace(*col.begin()) ||
+                              ascii_isspace(*col.rbegin())))) {
       // Double the original size, for escaping, plus two bytes for
       // the bracketing double-quotes, and one byte for the closing \0.
-      int size = 2 * cols[i].size() + 3;
+      int size = 2 * col.size() + 3;
       gscoped_array<char> buf(new char[size]);
 
       // Leave space at beginning and end for bracketing double-quotes.
-      int escaped_size = strings::EscapeStrForCSV(cols[i].c_str(),
+      int escaped_size = strings::EscapeStrForCSV(col.c_str(),
                                                   buf.get() + 1, size - 2);
       CHECK_GE(escaped_size, 0) << "Buffer somehow wasn't large enough.";
       CHECK_GE(size, escaped_size + 3)
@@ -194,7 +194,7 @@ void JoinCSVLineWithDelimiter(const vector<string>& cols, char delimiter,
       *((buf.get() + 1) + escaped_size + 1) = '\0';
       quoted_cols.push_back(string(buf.get(), buf.get() + escaped_size + 2));
     } else {
-      quoted_cols.push_back(cols[i]);
+      quoted_cols.push_back(col);
     }
   }
   JoinStrings(quoted_cols, delimiter_str, output);

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/serialize.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/serialize.cc b/src/kudu/gutil/strings/serialize.cc
index 56fd95b..5449ef7 100644
--- a/src/kudu/gutil/strings/serialize.cc
+++ b/src/kudu/gutil/strings/serialize.cc
@@ -223,9 +223,8 @@ int64 ReverseOrderedStringToInt64(const StringPiece& key) {
 
 string DictionaryInt32Encode(const hash_map<string, int32>* dictionary) {
   vector<string> entries;
-  for (hash_map<string, int32>::const_iterator iter = dictionary->begin();
-       iter != dictionary->end(); ++iter) {
-    entries.push_back(StringPrintf("%s:%d", iter->first.c_str(), iter->second));
+  for (const auto& entry : *dictionary) {
+    entries.push_back(StringPrintf("%s:%d", entry.first.c_str(), entry.second));
   }
 
   string result;
@@ -235,10 +234,9 @@ string DictionaryInt32Encode(const hash_map<string, int32>* dictionary) {
 
 string DictionaryInt64Encode(const hash_map<string, int64>* dictionary) {
   vector<string> entries;
-  for (hash_map<string, int64>::const_iterator iter = dictionary->begin();
-       iter != dictionary->end(); ++iter) {
+  for (const auto& entry : *dictionary) {
     entries.push_back(StringPrintf("%s:%" PRId64,
-                                   iter->first.c_str(), iter->second));
+                                   entry.first.c_str(), entry.second));
   }
 
   string result;
@@ -248,9 +246,8 @@ string DictionaryInt64Encode(const hash_map<string, int64>* dictionary) {
 
 string DictionaryDoubleEncode(const hash_map<string, double>* dictionary) {
   vector<string> entries;
-  for (hash_map<string, double>::const_iterator iter = dictionary->begin();
-       iter != dictionary->end(); ++iter) {
-    entries.push_back(StringPrintf("%s:%g", iter->first.c_str(), iter->second));
+  for (const auto& entry : *dictionary) {
+    entries.push_back(StringPrintf("%s:%g", entry.first.c_str(), entry.second));
   }
 
   string result;
@@ -259,12 +256,12 @@ string DictionaryDoubleEncode(const hash_map<string, double>* dictionary) {
 }
 
 bool DictionaryParse(const string& encoded_str,
-                      vector<pair<string, string> >* items) {
+                     vector<pair<string, string> >* items) {
   vector<string> entries;
   SplitStringUsing(encoded_str, ",", &entries);
-  for (int i = 0; i < entries.size(); ++i) {
+  for (const auto& entry : entries) {
     vector<string> fields;
-    SplitStringAllowEmpty(entries[i], ":", &fields);
+    SplitStringAllowEmpty(entry, ":", &fields);
     if (fields.size() != 2)  // parsing error
       return false;
     items->push_back(make_pair(fields[0], fields[1]));
@@ -279,14 +276,14 @@ bool DictionaryInt32Decode(hash_map<string, int32>* dictionary,
     return false;
 
   dictionary->clear();
-  for (int i = 0; i < items.size(); ++i) {
+  for (const auto& item : items) {
     char *error = nullptr;
-    const int32 value = strto32(items[i].second.c_str(), &error, 0);
-    if (error == items[i].second.c_str() || *error != '\0') {
+    const int32 value = strto32(item.second.c_str(), &error, 0);
+    if (error == item.second.c_str() || *error != '\0') {
       // parsing error
       return false;
     }
-    (*dictionary)[items[i].first] = value;
+    (*dictionary)[item.first] = value;
   }
   return true;
 }
@@ -298,14 +295,14 @@ bool DictionaryInt64Decode(hash_map<string, int64>* dictionary,
     return false;
 
   dictionary->clear();
-  for (int i = 0; i < items.size(); ++i) {
+  for (const auto& item : items) {
     char *error = nullptr;
-    const int64 value = strto64(items[i].second.c_str(), &error, 0);
-    if (error == items[i].second.c_str() || *error != '\0')  {
+    const int64 value = strto64(item.second.c_str(), &error, 0);
+    if (error == item.second.c_str() || *error != '\0')  {
       // parsing error
       return false;
     }
-    (*dictionary)[items[i].first] = value;
+    (*dictionary)[item.first] = value;
   }
   return true;
 }
@@ -318,14 +315,14 @@ bool DictionaryDoubleDecode(hash_map<string, double>* dictionary,
     return false;
 
   dictionary->clear();
-  for (int i = 0; i < items.size(); ++i) {
+  for (const auto& item : items) {
     char *error = nullptr;
-    const double value = strtod(items[i].second.c_str(), &error);
-    if (error == items[i].second.c_str() || *error != '\0') {
+    const double value = strtod(item.second.c_str(), &error);
+    if (error == item.second.c_str() || *error != '\0') {
       // parsing error
       return false;
     }
-    (*dictionary)[items[i].first] = value;
+    (*dictionary)[item.first] = value;
   }
   return true;
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/split.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/split.cc b/src/kudu/gutil/strings/split.cc
index 2e39a52..a42faa7 100644
--- a/src/kudu/gutil/strings/split.cc
+++ b/src/kudu/gutil/strings/split.cc
@@ -133,8 +133,8 @@ void AppendToImpl(vector<string>* container, Splitter splitter) {
   vector<StringPiece> vsp = splitter;  // Calls implicit conversion operator.
   size_t container_size = container->size();
   container->resize(container_size + vsp.size());
-  for (size_t i = 0; i < vsp.size(); ++i) {
-    vsp[i].CopyToString(&(*container)[container_size++]);
+  for (const auto& sp : vsp) {
+    sp.CopyToString(&(*container)[container_size++]);
   }
 }
 
@@ -1004,10 +1004,10 @@ bool SplitStringIntoKeyValuePairs(const string& line,
   SplitStringUsing(line, key_value_pair_delimiters.c_str(), &pairs);
 
   bool success = true;
-  for (size_t i = 0; i < pairs.size(); ++i) {
+  for (const auto& pair : pairs) {
     string key;
     vector<string> value;
-    if (!SplitStringIntoKeyValues(pairs[i],
+    if (!SplitStringIntoKeyValues(pair,
                                   key_value_delimiters,
                                   "", &key, &value)) {
       // Don't return here, to allow for keys without associated

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/split.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/split.h b/src/kudu/gutil/strings/split.h
index d90b96b..c487689 100644
--- a/src/kudu/gutil/strings/split.h
+++ b/src/kudu/gutil/strings/split.h
@@ -1156,9 +1156,9 @@ bool SplitStringAndParseToInserter(
   vector<StringPiece> pieces = strings::Split(source,
                                               strings::delimiter::AnyOf(delim),
                                               strings::SkipEmpty());
-  for (size_t i = 0; i < pieces.size(); ++i) {
+  for (const auto& piece : pieces) {
     typename Container::value_type t;
-    if (parse(pieces[i].as_string(), &t)) {
+    if (parse(piece.as_string(), &t)) {
       insert_policy(result, t);
     } else {
       retval = false;

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/split_internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/split_internal.h b/src/kudu/gutil/strings/split_internal.h
index 1b68554..01b3fac 100644
--- a/src/kudu/gutil/strings/split_internal.h
+++ b/src/kudu/gutil/strings/split_internal.h
@@ -329,8 +329,8 @@ class Splitter {
     Container c;
     ReserveCapacity(&c, v.size());
     std::insert_iterator<Container> inserter(c, c.begin());
-    for (size_t i = 0; i < v.size(); ++i) {
-      *inserter++ = converter(v[i]);
+    for (const auto& sp : v) {
+      *inserter++ = converter(sp);
     }
     return c;
   }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/strip.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/strip.cc b/src/kudu/gutil/strings/strip.cc
index 112ac31..1a6a547 100644
--- a/src/kudu/gutil/strings/strip.cc
+++ b/src/kudu/gutil/strings/strip.cc
@@ -74,9 +74,9 @@ void StripString(char* str, int len, StringPiece remove, char replacewith) {
 }
 
 void StripString(string* s, StringPiece remove, char replacewith) {
-  for (string::iterator it = s->begin(), end = s->end(); it != end; ++it) {
-    if (remove.find(*it) != StringPiece::npos) {
-      *it = replacewith;
+  for (char& c : *s) {
+    if (remove.find(c) != StringPiece::npos) {
+      c = replacewith;
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/gutil/strings/util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/util.cc b/src/kudu/gutil/strings/util.cc
index 715112b..c16d9b2 100644
--- a/src/kudu/gutil/strings/util.cc
+++ b/src/kudu/gutil/strings/util.cc
@@ -1092,8 +1092,8 @@ StringPiece FindEol(StringPiece s) {
 //  return true if string s contains only whitespace characters
 //------------------------------------------------------------------------
 bool OnlyWhitespace(const StringPiece& s) {
-  for ( int i = 0; i < s.size(); ++i ) {
-    if ( !ascii_isspace(s[i]) ) return false;
+  for (const auto& c : s) {
+    if ( !ascii_isspace(c) ) return false;
   }
   return true;
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/integration-tests/alter_table-randomized-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/alter_table-randomized-test.cc b/src/kudu/integration-tests/alter_table-randomized-test.cc
index 99b1b0a..cbf1bfd 100644
--- a/src/kudu/integration-tests/alter_table-randomized-test.cc
+++ b/src/kudu/integration-tests/alter_table-randomized-test.cc
@@ -366,11 +366,11 @@ struct MirrorTable {
       case UPDATE: op.reset(table->NewUpdate()); break;
       case DELETE: op.reset(table->NewDelete()); break;
     }
-    for (int i = 0; i < data.size(); i++) {
-      if (data[i].second == RowState::kNullValue) {
-        CHECK_OK(op->mutable_row()->SetNull(data[i].first));
+    for (const auto& d : data) {
+      if (d.second == RowState::kNullValue) {
+        CHECK_OK(op->mutable_row()->SetNull(d.first));
       } else {
-        CHECK_OK(op->mutable_row()->SetInt32(data[i].first, data[i].second));
+        CHECK_OK(op->mutable_row()->SetInt32(d.first, d.second));
       }
     }
     RETURN_NOT_OK(session->Apply(op.release()));

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/integration-tests/mini_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/mini_cluster.cc b/src/kudu/integration-tests/mini_cluster.cc
index ab45391..584822f 100644
--- a/src/kudu/integration-tests/mini_cluster.cc
+++ b/src/kudu/integration-tests/mini_cluster.cc
@@ -280,8 +280,8 @@ Status MiniCluster::WaitForTabletServerCount(int count,
       // are aligned (same uuid/seqno) with the TSs that we have in the cluster.
       int match_count = 0;
       for (const shared_ptr<TSDescriptor>& desc : *descs) {
-        for (int i = 0; i < mini_tablet_servers_.size(); ++i) {
-          TabletServer *ts = mini_tablet_servers_[i]->server();
+        for (auto mini_tablet_server : mini_tablet_servers_) {
+          auto ts = mini_tablet_server->server();
           if (ts->instance_pb().permanent_uuid() == desc->permanent_uuid() &&
               ts->instance_pb().instance_seqno() == desc->latest_seqno()) {
             match_count++;

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/rpc/mt-rpc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/mt-rpc-test.cc b/src/kudu/rpc/mt-rpc-test.cc
index c9ed7c8..6b05784 100644
--- a/src/kudu/rpc/mt-rpc-test.cc
+++ b/src/kudu/rpc/mt-rpc-test.cc
@@ -215,16 +215,16 @@ TEST_F(MultiThreadedRpcTest, TestBlowOutServiceQueue) {
   service_pool_->Shutdown();
   server_messenger_->Shutdown();
 
-  for (int i = 0; i < 3; i++) {
-    ASSERT_OK(ThreadJoiner(threads[i].get()).warn_every_ms(500).Join());
+  for (const auto& thread : threads) {
+    ASSERT_OK(ThreadJoiner(thread.get()).warn_every_ms(500).Join());
   }
 
   // Verify that one error was due to backpressure.
   int errors_backpressure = 0;
   int errors_shutdown = 0;
 
-  for (int i = 0; i < 3; i++) {
-    IncrementBackpressureOrShutdown(&status[i], &errors_backpressure, &errors_shutdown);
+  for (const auto& s : status) {
+    IncrementBackpressureOrShutdown(&s, &errors_backpressure, &errors_shutdown);
   }
 
   ASSERT_EQ(1, errors_backpressure);

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mt-rowset_delta_compaction-test.cc b/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
index 0191ee6..c9e8004 100644
--- a/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
+++ b/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
@@ -129,17 +129,17 @@ class TestMultiThreadedRowSetDeltaCompaction : public TestRowSet {
   }
 
   void JoinThreads() {
-    for (int i = 0; i < update_threads_.size(); i++) {
-      ASSERT_OK(ThreadJoiner(update_threads_[i].get()).Join());
+    for (const auto& thread : update_threads_) {
+      ASSERT_OK(ThreadJoiner(thread.get()).Join());
     }
-    for (int i = 0; i < flush_threads_.size(); i++) {
-      ASSERT_OK(ThreadJoiner(flush_threads_[i].get()).Join());
+    for (const auto& thread : flush_threads_) {
+      ASSERT_OK(ThreadJoiner(thread.get()).Join());
     }
-    for (int i = 0; i < compaction_threads_.size(); i++) {
-      ASSERT_OK(ThreadJoiner(compaction_threads_[i].get()).Join());
+    for (const auto& thread : compaction_threads_) {
+      ASSERT_OK(ThreadJoiner(thread.get()).Join());
     }
-    for (int i = 0; i < alter_schema_threads_.size(); i++) {
-      ASSERT_OK(ThreadJoiner(alter_schema_threads_[i].get()).Join());
+    for (const auto& thread : alter_schema_threads_) {
+      ASSERT_OK(ThreadJoiner(thread.get()).Join());
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/tablet/mvcc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mvcc.cc b/src/kudu/tablet/mvcc.cc
index 313a858..f972379 100644
--- a/src/kudu/tablet/mvcc.cc
+++ b/src/kudu/tablet/mvcc.cc
@@ -241,9 +241,9 @@ void MvccManager::OfflineAdjustSafeTime(Timestamp safe_time) {
 static void FilterTimestamps(std::vector<Timestamp::val_type>* v,
                              Timestamp::val_type watermark) {
   int j = 0;
-  for (int i = 0; i < v->size(); i++) {
-    if ((*v)[i] >= watermark) {
-      (*v)[j++] = (*v)[i];
+  for (const auto& ts : *v) {
+    if (ts >= watermark) {
+      (*v)[j++] = ts;
     }
   }
   v->resize(j);

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/tablet/tablet-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-test-util.h b/src/kudu/tablet/tablet-test-util.h
index 89c7591..1b25538 100644
--- a/src/kudu/tablet/tablet-test-util.h
+++ b/src/kudu/tablet/tablet-test-util.h
@@ -175,8 +175,8 @@ static inline void CollectRowsForSnapshots(Tablet* tablet,
     ASSERT_OK(iter->Init(NULL));
     auto collector = new vector<string>();
     ASSERT_OK(IterateToStringList(iter.get(), collector));
-    for (int i = 0; i < collector->size(); i++) {
-      DVLOG(1) << "Got from MRS: " << (*collector)[i];
+    for (const auto& mrs : *collector) {
+      DVLOG(1) << "Got from MRS: " << mrs;
     }
     collected_rows->push_back(collector);
   }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/auto_release_pool.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/auto_release_pool.h b/src/kudu/util/auto_release_pool.h
index cb1d811..eaed9c2 100644
--- a/src/kudu/util/auto_release_pool.h
+++ b/src/kudu/util/auto_release_pool.h
@@ -33,9 +33,8 @@ class AutoReleasePool {
   AutoReleasePool(): objects_() { }
 
   ~AutoReleasePool() {
-    for (ElementVector::iterator i = objects_.begin();
-         i != objects_.end(); ++i) {
-      delete *i;
+    for (auto& object : objects_) {
+      delete object;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/blocking_queue-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/blocking_queue-test.cc b/src/kudu/util/blocking_queue-test.cc
index 7aa3c96..876b451 100644
--- a/src/kudu/util/blocking_queue-test.cc
+++ b/src/kudu/util/blocking_queue-test.cc
@@ -180,9 +180,8 @@ class MultiThreadTest {
     threads_.push_back(shared_ptr<boost::thread>(
             new boost::thread(boost::bind(
               &MultiThreadTest::RemoverThread, this))));
-    for (thread_vec_t::iterator t = threads_.begin();
-         t != threads_.end(); ++t) {
-      (*t)->join();
+    for (const auto& thread : threads_) {
+      thread->join();
     }
     // Let's check to make sure we got what we should have.
     MutexLock guard(lock_);

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/debug/trace_event_impl.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_impl.cc b/src/kudu/util/debug/trace_event_impl.cc
index 6f3e5e9..b3e2e5f 100644
--- a/src/kudu/util/debug/trace_event_impl.cc
+++ b/src/kudu/util/debug/trace_event_impl.cc
@@ -503,8 +503,9 @@ TraceEvent::TraceEvent()
       thread_id_(0),
       phase_(TRACE_EVENT_PHASE_BEGIN),
       flags_(0) {
-  for (int i = 0; i < kTraceMaxNumArgs; ++i)
-    arg_names_[i] = nullptr;
+  for (auto& arg_name : arg_names_) {
+    arg_name = nullptr;
+  }
   memset(arg_values_, 0, sizeof(arg_values_));
 }
 
@@ -967,8 +968,8 @@ void TraceSamplingThread::DefaultSamplingCallback(
 }
 
 void TraceSamplingThread::GetSamples() {
-  for (size_t i = 0; i < sample_buckets_.size(); ++i) {
-    TraceBucketData* bucket_data = &sample_buckets_[i];
+  for (auto& sample_bucket : sample_buckets_) {
+    TraceBucketData* bucket_data = &sample_bucket;
     bucket_data->callback.Run(bucket_data);
   }
 }
@@ -1351,8 +1352,8 @@ void TraceLog::SetEnabled(const CategoryFilter& category_filter,
     observer_list = enabled_state_observer_list_;
   }
   // Notify observers outside the lock in case they trigger trace events.
-  for (size_t i = 0; i < observer_list.size(); ++i)
-    observer_list[i]->OnTraceLogEnabled();
+  for (const auto& observer : observer_list)
+    observer->OnTraceLogEnabled();
 
   {
     SpinLockHolder lock(&lock_);
@@ -1408,8 +1409,8 @@ void TraceLog::SetDisabledWhileLocked() {
     // Dispatch to observers outside the lock in case the observer triggers a
     // trace event.
     lock_.Unlock();
-    for (size_t i = 0; i < observer_list.size(); ++i)
-      observer_list[i]->OnTraceLogDisabled();
+    for (const auto& observer : observer_list)
+      observer->OnTraceLogDisabled();
     lock_.Lock();
   }
   dispatching_to_observer_list_ = false;
@@ -2070,10 +2071,8 @@ void TraceLog::AddMetadataEventsWhileLocked() {
 
   if (process_labels_.size() > 0) {
     std::vector<std::string> labels;
-    for(std::unordered_map<int, std::string>::iterator it = process_labels_.begin();
-        it != process_labels_.end();
-        it++) {
-      labels.push_back(it->second);
+    for(auto& label : process_labels_) {
+      labels.push_back(label.second);
     }
     InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(nullptr, false),
                             current_thread_id,
@@ -2082,28 +2081,24 @@ void TraceLog::AddMetadataEventsWhileLocked() {
   }
 
   // Thread sort indices.
-  for(std::unordered_map<int, int>::iterator it = thread_sort_indices_.begin();
-      it != thread_sort_indices_.end();
-      it++) {
-    if (it->second == 0)
+  for(auto& sort_index : thread_sort_indices_) {
+    if (sort_index.second == 0)
       continue;
     InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(nullptr, false),
-                            it->first,
+                            sort_index.first,
                             "thread_sort_index", "sort_index",
-                            it->second);
+                            sort_index.second);
   }
 
   // Thread names.
   SpinLockHolder thread_info_lock(&thread_info_lock_);
-  for(std::unordered_map<int, std::string>::iterator it = thread_names_.begin();
-      it != thread_names_.end();
-      it++) {
-    if (it->second.empty())
+  for(auto& name : thread_names_) {
+    if (name.second.empty())
       continue;
     InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(nullptr, false),
-                            it->first,
+                            name.first,
                             "thread_name", "name",
-                            it->second);
+                            name.second);
   }
 }
 
@@ -2289,11 +2284,10 @@ void CategoryFilter::WriteString(const StringList& values,
                                  bool included) const {
   bool prepend_comma = !out->empty();
   int token_cnt = 0;
-  for (StringList::const_iterator ci = values.begin();
-       ci != values.end(); ++ci) {
+  for (const auto& value : values) {
     if (token_cnt > 0 || prepend_comma)
       StringAppendF(out, ",");
-    StringAppendF(out, "%s%s", (included ? "" : "-"), ci->c_str());
+    StringAppendF(out, "%s%s", (included ? "" : "-"), value.c_str());
     ++token_cnt;
   }
 }
@@ -2302,12 +2296,11 @@ void CategoryFilter::WriteString(const StringList& delays,
                                  std::string* out) const {
   bool prepend_comma = !out->empty();
   int token_cnt = 0;
-  for (StringList::const_iterator ci = delays.begin();
-       ci != delays.end(); ++ci) {
+  for (const auto& delay : delays) {
     if (token_cnt > 0 || prepend_comma)
       StringAppendF(out, ",");
     StringAppendF(out, "%s%s)", kSyntheticDelayCategoryFilterPrefix,
-                  ci->c_str());
+                  delay.c_str());
     ++token_cnt;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/mem_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker.cc b/src/kudu/util/mem_tracker.cc
index 3bee9cf..1f13347 100644
--- a/src/kudu/util/mem_tracker.cc
+++ b/src/kudu/util/mem_tracker.cc
@@ -284,11 +284,10 @@ void MemTracker::Consume(int64_t bytes) {
   if (PREDICT_FALSE(enable_logging_)) {
     LogUpdate(true, bytes);
   }
-  for (vector<MemTracker*>::iterator tracker = all_trackers_.begin();
-       tracker != all_trackers_.end(); ++tracker) {
-    (*tracker)->consumption_.IncrementBy(bytes);
-    if (!(*tracker)->consumption_func_.empty()) {
-      DCHECK_GE((*tracker)->consumption_.current_value(), 0);
+  for (auto& tracker : all_trackers_) {
+    tracker->consumption_.IncrementBy(bytes);
+    if (!tracker->consumption_func_.empty()) {
+      DCHECK_GE(tracker->consumption_.current_value(), 0);
     }
   }
 }
@@ -370,25 +369,23 @@ void MemTracker::Release(int64_t bytes) {
     LogUpdate(false, bytes);
   }
 
-  for (vector<MemTracker*>::iterator tracker = all_trackers_.begin();
-       tracker != all_trackers_.end(); ++tracker) {
-    (*tracker)->consumption_.IncrementBy(-bytes);
+  for (auto& tracker : all_trackers_) {
+    tracker->consumption_.IncrementBy(-bytes);
     // If a UDF calls FunctionContext::TrackAllocation() but allocates less than the
     // reported amount, the subsequent call to FunctionContext::Free() may cause the
     // process mem tracker to go negative until it is synced back to the tcmalloc
     // metric. Don't blow up in this case. (Note that this doesn't affect non-process
     // trackers since we can enforce that the reported memory usage is internally
     // consistent.)
-    if (!(*tracker)->consumption_func_.empty()) {
-      DCHECK_GE((*tracker)->consumption_.current_value(), 0);
+    if (!tracker->consumption_func_.empty()) {
+      DCHECK_GE(tracker->consumption_.current_value(), 0);
     }
   }
 }
 
 bool MemTracker::AnyLimitExceeded() {
-  for (vector<MemTracker*>::iterator tracker = limit_trackers_.begin();
-       tracker != limit_trackers_.end(); ++tracker) {
-    if ((*tracker)->LimitExceeded()) {
+  for (const auto& tracker : limit_trackers_) {
+    if (tracker->LimitExceeded()) {
       return true;
     }
   }
@@ -446,9 +443,8 @@ bool MemTracker::AnySoftLimitExceeded(double* current_capacity_pct) {
 
 int64_t MemTracker::SpareCapacity() const {
   int64_t result = std::numeric_limits<int64_t>::max();
-  for (vector<MemTracker*>::const_iterator tracker = limit_trackers_.begin();
-       tracker != limit_trackers_.end(); ++tracker) {
-    int64_t mem_left = (*tracker)->limit() - (*tracker)->consumption();
+  for (const auto& tracker : limit_trackers_) {
+    int64_t mem_left = tracker->limit() - tracker->consumption();
     result = std::min(result, mem_left);
   }
   return result;
@@ -471,8 +467,8 @@ bool MemTracker::GcMemory(int64_t max_consumption) {
   }
 
   // Try to free up some memory
-  for (int i = 0; i < gc_functions_.size(); ++i) {
-    gc_functions_[i]();
+  for (const auto& gc_function : gc_functions_) {
+    gc_function();
     if (!consumption_func_.empty()) {
       UpdateConsumption();
     }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/memenv/memenv.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memenv/memenv.cc b/src/kudu/util/memenv/memenv.cc
index 9bf5a28..92b2007 100644
--- a/src/kudu/util/memenv/memenv.cc
+++ b/src/kudu/util/memenv/memenv.cc
@@ -437,8 +437,8 @@ class InMemoryEnv : public EnvWrapper {
     MutexLock lock(mutex_);
     result->clear();
 
-    for (FileSystem::iterator i = file_map_.begin(); i != file_map_.end(); ++i) {
-      const std::string& filename = i->first;
+    for (const auto& file : file_map_) {
+      const std::string& filename = file.first;
 
       if (filename.size() >= dir.size() + 1 && filename[dir.size()] == '/' &&
           Slice(filename).starts_with(Slice(dir))) {

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/rle-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rle-test.cc b/src/kudu/util/rle-test.cc
index 5d0266f..b220b30 100644
--- a/src/kudu/util/rle-test.cc
+++ b/src/kudu/util/rle-test.cc
@@ -190,8 +190,8 @@ void ValidateRle(const vector<T>& values, int bit_width,
   faststring buffer;
   RleEncoder<T> encoder(&buffer, bit_width);
 
-  for (int i = 0; i < values.size(); ++i) {
-    encoder.Put(values[i]);
+  for (const auto& value : values) {
+    encoder.Put(value);
   }
   int encoded_len = encoder.Flush();
 
@@ -207,11 +207,11 @@ void ValidateRle(const vector<T>& values, int bit_width,
 
   // Verify read
   RleDecoder<T> decoder(buffer.data(), encoded_len, bit_width);
-  for (int i = 0; i < values.size(); ++i) {
+  for (const auto& value : values) {
     T val = 0;
     bool result = decoder.Get(&val);
     EXPECT_TRUE(result);
-    EXPECT_EQ(values[i], val);
+    EXPECT_EQ(value, val);
   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/47d69dd6/src/kudu/util/string_case.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/string_case.cc b/src/kudu/util/string_case.cc
index b85879a..141cdc5 100644
--- a/src/kudu/util/string_case.cc
+++ b/src/kudu/util/string_case.cc
@@ -31,8 +31,7 @@ void SnakeToCamelCase(const std::string &snake_case,
   camel_case->reserve(snake_case.size());
 
   bool uppercase_next = true;
-  for (int i = 0; i < snake_case.size(); i++) {
-    char c = snake_case[i];
+  for (char c : snake_case) {
     if ((c == '_') ||
         (c == '-')) {
       uppercase_next = true;
@@ -53,8 +52,8 @@ void ToUpperCase(const std::string &string,
     *out = string;
   }
 
-  for (int i = 0; i < out->size(); i++) {
-    (*out)[i] = toupper((*out)[i]);
+  for (char& c : *out) {
+    c = toupper(c);
   }
 }
 



[2/3] incubator-kudu git commit: docs: fix circular dependency

Posted by to...@apache.org.
docs: fix circular dependency

After commit 3e8d29f, 'make docs' began emitting circular dependency
warnings when invoked:

  Scanning dependencies of target docs
  make[3]: Circular CMakeFiles/docs <- docs dependency dropped.
  make[3]: Circular docs <- docs dependency dropped.

The offending change was the removal of 'build' from DOCS_BUILD_DIRECTORY,
though I don't understand why. In any case, we don't need both a custom
target and command, and removing the latter fixes the circular dependency.

Change-Id: I3b2f2d874926e00b7a838977572b3288bd6156e4
Reviewed-on: http://gerrit.cloudera.org:8080/1856
Tested-by: Internal Jenkins
Reviewed-by: Todd Lipcon <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/efa7e825
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/efa7e825
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/efa7e825

Branch: refs/heads/master
Commit: efa7e825d574f04df85e486e0e2bff553293dc77
Parents: 47d69dd
Author: Adar Dembo <ad...@cloudera.com>
Authored: Wed Jan 20 22:51:19 2016 -0800
Committer: Todd Lipcon <to...@apache.org>
Committed: Fri Jan 22 02:32:23 2016 +0000

----------------------------------------------------------------------
 CMakeLists.txt | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/efa7e825/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8e3117..80c0110 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -897,14 +897,10 @@ endif (UNIX)
 # "make docs" target
 ############################################################
 if (UNIX)
-  set(DOCS_BUILD_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs)
-  add_custom_command(
-    OUTPUT ${DOCS_BUILD_DIRECTORY}
-    # We want the docs output HTML to go in a docs/ subdir of the output dir
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/docs/support/scripts/make_docs.sh
-            --build_root ${CMAKE_CURRENT_BINARY_DIR})
   add_custom_target(docs
-    DEPENDS ${DOCS_BUILD_DIRECTORY})
+    # The docs output HTML will end up in a docs/ subdir.
+    ${CMAKE_CURRENT_SOURCE_DIR}/docs/support/scripts/make_docs.sh
+      --build_root ${CMAKE_CURRENT_BINARY_DIR})
 endif (UNIX)
 
 ############################################################


[3/3] incubator-kudu git commit: KUDU-1269: KuduScanner should expose its projection schema

Posted by to...@apache.org.
KUDU-1269: KuduScanner should expose its projection schema

While I was at it, I also copied the other public getters from
AsyncKuduScanner into KuduScanner.

Change-Id: I1568744669c2d632aa737658f79bb9ba336439ad
Reviewed-on: http://gerrit.cloudera.org:8080/1869
Reviewed-by: Jean-Daniel Cryans
Reviewed-by: Todd Lipcon <to...@apache.org>
Tested-by: Internal Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/8260093b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/8260093b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/8260093b

Branch: refs/heads/master
Commit: 8260093b9e53445801c8b69d9b69700721c965ce
Parents: efa7e82
Author: Adar Dembo <ad...@cloudera.com>
Authored: Thu Jan 21 17:03:12 2016 -0800
Committer: Todd Lipcon <to...@apache.org>
Committed: Fri Jan 22 02:32:29 2016 +0000

----------------------------------------------------------------------
 .../org/kududb/client/AsyncKuduScanner.java     | 13 +++++-
 .../java/org/kududb/client/KuduScanner.java     | 45 ++++++++++++++++++++
 2 files changed, 56 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8260093b/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduScanner.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduScanner.java b/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduScanner.java
index 0b4a5c2..ecb916a 100644
--- a/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduScanner.java
+++ b/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduScanner.java
@@ -321,7 +321,7 @@ public final class AsyncKuduScanner {
    * @return a long representing the maximum number of rows that can be returned
    */
   public long getLimit() {
-    return limit;
+    return this.limit;
   }
 
   /**
@@ -346,7 +346,7 @@ public final class AsyncKuduScanner {
    * from a tablet server
    */
   public long getBatchSizeBytes() {
-    return batchSizeBytes;
+    return this.batchSizeBytes;
   }
 
   /**
@@ -357,6 +357,15 @@ public final class AsyncKuduScanner {
     return this.readMode;
   }
 
+  /**
+   * Returns the projection schema of this scanner. If specific columns were
+   * not specified during scanner creation, the table schema is returned.
+   * @return the projection schema for this scanner
+   */
+  public Schema getProjectionSchema() {
+    return this.schema;
+  }
+
   long getSnapshotTimestamp() {
     return this.htTimestamp;
   }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8260093b/java/kudu-client/src/main/java/org/kududb/client/KuduScanner.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/kududb/client/KuduScanner.java b/java/kudu-client/src/main/java/org/kududb/client/KuduScanner.java
index 962bdfd..cdaaa46 100644
--- a/java/kudu-client/src/main/java/org/kududb/client/KuduScanner.java
+++ b/java/kudu-client/src/main/java/org/kududb/client/KuduScanner.java
@@ -17,8 +17,11 @@
 package org.kududb.client;
 
 import com.stumbleupon.async.Deferred;
+
+import org.kududb.Schema;
 import org.kududb.annotations.InterfaceAudience;
 import org.kududb.annotations.InterfaceStability;
+import org.kududb.client.AsyncKuduScanner.ReadMode;
 
 /**
  * Synchronous version of {@link AsyncKuduScanner}. Offers the same API but with blocking methods.
@@ -66,6 +69,48 @@ public class KuduScanner {
   }
 
   /**
+   * Returns the maximum number of rows that this scanner was configured to return.
+   * @return a long representing the maximum number of rows that can be returned
+   */
+  public long getLimit() {
+    return asyncScanner.getLimit();
+  }
+
+  /**
+   * Returns if this scanner was configured to cache data blocks or not.
+   * @return true if this scanner will cache blocks, else else.
+   */
+  public boolean getCacheBlocks() {
+    return asyncScanner.getCacheBlocks();
+  }
+
+  /**
+   * Returns the maximum number of bytes returned by the scanner, on each batch.
+   * @return a long representing the maximum number of bytes that a scanner can receive at once
+   * from a tablet server
+   */
+  public long getBatchSizeBytes() {
+    return asyncScanner.getBatchSizeBytes();
+  }
+
+  /**
+   * Returns the ReadMode for this scanner.
+   * @return the configured read mode for this scanner
+   */
+  public ReadMode getReadMode() {
+    return asyncScanner.getReadMode();
+  }
+
+  /**
+   * Returns the projection schema of this scanner. If specific columns were
+   * not specified during scanner creation, the table schema is returned.
+   * @return the projection schema for this scanner
+   */
+  public Schema getProjectionSchema() {
+    return asyncScanner.getProjectionSchema();
+  }
+
+  /**
    * A Builder class to build {@link KuduScanner}.
    * Use {@link KuduClient#newScannerBuilder} in order to get a builder instance.
    */