This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 72b3bf4  replace shared_ptr(new T) with make_shared<T>()
72b3bf4 is described below

commit 72b3bf43e577fb060fed6e0e05b47ed24e237ac5
Author: Alexey Serbin <[email protected]>
AuthorDate: Fri May 22 12:59:21 2020 -0700

    replace shared_ptr(new T) with make_shared<T>()
    
    This patch replaces std::shared_ptr(new T(...)) pattern with
    std::make_share<T>(...).  The motivation of this changelist was to
    reduce number of allocation in the heap.  For details, see 'Notes'
    section at https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared
    
    I didn't touch sp::shared_ptr-related pieces in KuduClient to avoid
    template meta-programming: not sure it's worth it.
    
    I also did other minor changes regarding 'using std::make_shared', etc.
    
    Change-Id: I9bcca0287d484472f7cc616f553060fe83faab1a
    Reviewed-on: http://gerrit.cloudera.org:8080/15981
    Reviewed-by: Andrew Wong <[email protected]>
    Tested-by: Andrew Wong <[email protected]>
---
 src/kudu/consensus/consensus_peers.cc              |  15 +-
 src/kudu/consensus/consensus_peers.h               |   8 +-
 src/kudu/hms/hms_client.cc                         |   2 +-
 src/kudu/integration-tests/cluster_verifier.cc     |   2 +-
 src/kudu/master/placement_policy-test.cc           |   2 +-
 src/kudu/mini-cluster/internal_mini_cluster.cc     |   3 +-
 src/kudu/tablet/cfile_set.cc                       |   7 +-
 src/kudu/tablet/cfile_set.h                        |  14 +-
 src/kudu/tablet/deltamemstore.cc                   |   8 +-
 src/kudu/tablet/deltamemstore.h                    |  11 +-
 src/kudu/tablet/diskrowset.cc                      |   9 +-
 src/kudu/tablet/diskrowset.h                       |  14 +-
 src/kudu/tablet/memrowset.cc                       |   5 +-
 src/kudu/tablet/memrowset.h                        |  11 +-
 src/kudu/tablet/rowset_tree-test.cc                |  21 +--
 src/kudu/tablet/tablet-test.cc                     | 178 ++++++++++-----------
 src/kudu/tablet/tablet.cc                          |  34 ++--
 src/kudu/tools/ksck-test.cc                        |  23 +--
 src/kudu/tools/ksck_remote.cc                      |  11 +-
 src/kudu/tools/tool_action_cluster.cc              |   5 +-
 src/kudu/tserver/tablet_server-test.cc             |   7 +-
 .../tserver/tablet_server_authorization-test.cc    |  38 +++--
 src/kudu/util/make_shared.h                        |   2 +-
 src/kudu/util/test_graph.cc                        |  15 +-
 src/kudu/util/test_graph.h                         |  16 +-
 src/kudu/util/threadpool-test.cc                   |   7 +-
 26 files changed, 241 insertions(+), 227 deletions(-)

diff --git a/src/kudu/consensus/consensus_peers.cc 
b/src/kudu/consensus/consensus_peers.cc
index 2d9c116..099468a 100644
--- a/src/kudu/consensus/consensus_peers.cc
+++ b/src/kudu/consensus/consensus_peers.cc
@@ -112,13 +112,14 @@ Status Peer::NewRemotePeer(RaftPeerPB peer_pb,
                            shared_ptr<Messenger> messenger,
                            shared_ptr<Peer>* peer) {
 
-  shared_ptr<Peer> new_peer(new Peer(std::move(peer_pb),
-                                     std::move(tablet_id),
-                                     std::move(leader_uuid),
-                                     queue,
-                                     raft_pool_token,
-                                     std::move(proxy),
-                                     std::move(messenger)));
+  auto new_peer(Peer::make_shared(
+      std::move(peer_pb),
+      std::move(tablet_id),
+      std::move(leader_uuid),
+      queue,
+      raft_pool_token,
+      std::move(proxy),
+      std::move(messenger)));
   RETURN_NOT_OK(new_peer->Init());
   *peer = std::move(new_peer);
   return Status::OK();
diff --git a/src/kudu/consensus/consensus_peers.h 
b/src/kudu/consensus/consensus_peers.h
index 887b147..1df1a4c 100644
--- a/src/kudu/consensus/consensus_peers.h
+++ b/src/kudu/consensus/consensus_peers.h
@@ -31,6 +31,7 @@
 #include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/status.h"
 
@@ -65,7 +66,9 @@ class PeerProxy;
 // object, and performed on a thread pool (since it may do IO). When a
 // response is received, the peer updates the PeerMessageQueue
 // using PeerMessageQueue::ResponseFromPeer(...) on the same thread pool.
-class Peer : public std::enable_shared_from_this<Peer> {
+class Peer :
+    public std::enable_shared_from_this<Peer>,
+    public enable_make_shared<Peer> {
  public:
   // Initializes a peer and start sending periodic heartbeats.
   Status Init();
@@ -115,7 +118,7 @@ class Peer : public std::enable_shared_from_this<Peer> {
                               std::shared_ptr<rpc::Messenger> messenger,
                               std::shared_ptr<Peer>* peer);
 
- private:
+ protected:
   Peer(RaftPeerPB peer_pb,
        std::string tablet_id,
        std::string leader_uuid,
@@ -124,6 +127,7 @@ class Peer : public std::enable_shared_from_this<Peer> {
        std::unique_ptr<PeerProxy> proxy,
        std::shared_ptr<rpc::Messenger> messenger);
 
+ private:
   void SendNextRequest(bool even_if_queue_empty);
 
   // Signals that a response was received from the peer.
diff --git a/src/kudu/hms/hms_client.cc b/src/kudu/hms/hms_client.cc
index 9f37528..e945861 100644
--- a/src/kudu/hms/hms_client.cc
+++ b/src/kudu/hms/hms_client.cc
@@ -391,7 +391,7 @@ Status HmsClient::GetPartitions(const string& database_name,
 
 
 Status HmsClient::DeserializeJsonTable(Slice json, hive::Table* table)  {
-  shared_ptr<TMemoryBuffer> membuffer(new TMemoryBuffer(json.size()));
+  auto membuffer(std::make_shared<TMemoryBuffer>(json.size()));
   membuffer->write(json.data(), json.size());
   TJSONProtocol protocol(membuffer);
   HMS_RET_NOT_OK(table->read(&protocol), "failed to deserialize JSON table");
diff --git a/src/kudu/integration-tests/cluster_verifier.cc 
b/src/kudu/integration-tests/cluster_verifier.cc
index dea427a..b03b63a 100644
--- a/src/kudu/integration-tests/cluster_verifier.cc
+++ b/src/kudu/integration-tests/cluster_verifier.cc
@@ -104,7 +104,7 @@ Status ClusterVerifier::RunKsck() {
   }
   std::shared_ptr<KsckCluster> cluster;
   RETURN_NOT_OK(RemoteKsckCluster::Build(hp_strs, &cluster));
-  std::shared_ptr<Ksck> ksck(new Ksck(cluster));
+  auto ksck(std::make_shared<Ksck>(cluster));
 
   // Some unit tests create or remove replicas of tablets, which
   // we shouldn't consider fatal.
diff --git a/src/kudu/master/placement_policy-test.cc 
b/src/kudu/master/placement_policy-test.cc
index 90ea547..f48e8c3 100644
--- a/src/kudu/master/placement_policy-test.cc
+++ b/src/kudu/master/placement_policy-test.cc
@@ -103,7 +103,7 @@ class PlacementPolicyTest : public ::testing::Test {
     for (const auto& location_info : cluster_info) {
       const auto& ts_infos = location_info.tablet_servers;
       for (const auto& ts : ts_infos) {
-        shared_ptr<TSDescriptor> tsd(new TSDescriptor(ts.id));
+        auto tsd(TSDescriptor::make_shared(ts.id));
         tsd->set_num_live_replicas(ts.replica_num);
         tsd->location_.emplace(location_info.id);
         tsd->set_num_live_replicas_by_dimension(ts.replica_num_by_dimension);
diff --git a/src/kudu/mini-cluster/internal_mini_cluster.cc 
b/src/kudu/mini-cluster/internal_mini_cluster.cc
index 830eb43..3069353 100644
--- a/src/kudu/mini-cluster/internal_mini_cluster.cc
+++ b/src/kudu/mini-cluster/internal_mini_cluster.cc
@@ -146,7 +146,8 @@ Status InternalMiniCluster::StartMasters() {
               << HostPort::ToCommaSeparatedString(master_rpc_addrs);
 
     for (int i = 0; i < num_masters; i++) {
-      shared_ptr<MiniMaster> mini_master(new MiniMaster(GetMasterFsRoot(i), 
master_rpc_addrs[i]));
+      auto mini_master(std::make_shared<MiniMaster>(
+          GetMasterFsRoot(i), master_rpc_addrs[i]));
       if (num_masters > 1) {
         mini_master->SetMasterAddresses(master_rpc_addrs);
       }
diff --git a/src/kudu/tablet/cfile_set.cc b/src/kudu/tablet/cfile_set.cc
index fa27226..8c09ba9 100644
--- a/src/kudu/tablet/cfile_set.cc
+++ b/src/kudu/tablet/cfile_set.cc
@@ -122,9 +122,10 @@ Status CFileSet::Open(shared_ptr<RowSetMetadata> 
rowset_metadata,
                       shared_ptr<MemTracker> cfile_reader_tracker,
                       const IOContext* io_context,
                       shared_ptr<CFileSet>* cfile_set) {
-  shared_ptr<CFileSet> cfs(new CFileSet(std::move(rowset_metadata),
-                                        std::move(bloomfile_tracker),
-                                        std::move(cfile_reader_tracker)));
+  auto cfs(CFileSet::make_shared(
+      std::move(rowset_metadata),
+      std::move(bloomfile_tracker),
+      std::move(cfile_reader_tracker)));
   RETURN_NOT_OK(cfs->DoOpen(io_context));
 
   cfile_set->swap(cfs);
diff --git a/src/kudu/tablet/cfile_set.h b/src/kudu/tablet/cfile_set.h
index a34dd21..1b06df0 100644
--- a/src/kudu/tablet/cfile_set.h
+++ b/src/kudu/tablet/cfile_set.h
@@ -37,6 +37,7 @@
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/port.h"
 #include "kudu/tablet/rowset_metadata.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/status.h"
 
 namespace boost {
@@ -69,7 +70,9 @@ struct ProbeStats;
 //
 // All of these files have the same number of rows, and thus the positional
 // indexes can be used to seek to corresponding entries in each.
-class CFileSet : public std::enable_shared_from_this<CFileSet> {
+class CFileSet :
+    public std::enable_shared_from_this<CFileSet>,
+    public enable_make_shared<CFileSet> {
  public:
   class Iterator;
 
@@ -128,15 +131,16 @@ class CFileSet : public 
std::enable_shared_from_this<CFileSet> {
 
   virtual ~CFileSet();
 
+ protected:
+  CFileSet(std::shared_ptr<RowSetMetadata> rowset_metadata,
+           std::shared_ptr<MemTracker> bloomfile_tracker,
+           std::shared_ptr<MemTracker> cfile_reader_tracker);
+
  private:
   friend class Iterator;
 
   DISALLOW_COPY_AND_ASSIGN(CFileSet);
 
-  CFileSet(std::shared_ptr<RowSetMetadata> rowset_metadata,
-           std::shared_ptr<MemTracker> bloomfile_tracker,
-           std::shared_ptr<MemTracker> cfile_reader_tracker);
-
   Status DoOpen(const fs::IOContext* io_context);
   Status OpenBloomReader(const fs::IOContext* io_context);
   Status LoadMinMaxKeys(const fs::IOContext* io_context);
diff --git a/src/kudu/tablet/deltamemstore.cc b/src/kudu/tablet/deltamemstore.cc
index 0309ca6..3575a3c 100644
--- a/src/kudu/tablet/deltamemstore.cc
+++ b/src/kudu/tablet/deltamemstore.cc
@@ -60,11 +60,9 @@ Status DeltaMemStore::Create(int64_t id,
                              LogAnchorRegistry* log_anchor_registry,
                              shared_ptr<MemTracker> parent_tracker,
                              shared_ptr<DeltaMemStore>* dms) {
-  shared_ptr<DeltaMemStore> local_dms(new DeltaMemStore(id, rs_id,
-                                                        log_anchor_registry,
-                                                        
std::move(parent_tracker)));
-
-  dms->swap(local_dms);
+  auto local_dms(DeltaMemStore::make_shared(
+      id, rs_id, log_anchor_registry, std::move(parent_tracker)));
+  *dms = std::move(local_dms);
   return Status::OK();
 }
 
diff --git a/src/kudu/tablet/deltamemstore.h b/src/kudu/tablet/deltamemstore.h
index 49dfaa1..a7822a5 100644
--- a/src/kudu/tablet/deltamemstore.h
+++ b/src/kudu/tablet/deltamemstore.h
@@ -36,6 +36,7 @@
 #include "kudu/tablet/delta_store.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/status.h"
 
@@ -72,7 +73,8 @@ struct DMSTreeTraits : public btree::BTreeTraits {
 // modified columns.
 
 class DeltaMemStore : public DeltaStore,
-                      public std::enable_shared_from_this<DeltaMemStore> {
+                      public std::enable_shared_from_this<DeltaMemStore>,
+                      public enable_make_shared<DeltaMemStore> {
  public:
   static Status Create(int64_t id, int64_t rs_id,
                        log::LogAnchorRegistry* log_anchor_registry,
@@ -158,14 +160,15 @@ class DeltaMemStore : public DeltaStore,
         boost::none : boost::make_optional(highest_timestamp_);
   }
 
- private:
-  friend class DMSIterator;
-
+ protected:
   DeltaMemStore(int64_t id,
                 int64_t rs_id,
                 log::LogAnchorRegistry* log_anchor_registry,
                 std::shared_ptr<MemTracker> parent_tracker);
 
+ private:
+  friend class DMSIterator;
+
   const DMSTree& tree() const {
     return tree_;
   }
diff --git a/src/kudu/tablet/diskrowset.cc b/src/kudu/tablet/diskrowset.cc
index c0068b4..a761c48 100644
--- a/src/kudu/tablet/diskrowset.cc
+++ b/src/kudu/tablet/diskrowset.cc
@@ -507,13 +507,10 @@ Status DiskRowSet::Open(const shared_ptr<RowSetMetadata>& 
rowset_metadata,
                         const TabletMemTrackers& mem_trackers,
                         const IOContext* io_context,
                         shared_ptr<DiskRowSet> *rowset) {
-  shared_ptr<DiskRowSet> rs(new DiskRowSet(rowset_metadata,
-                                           log_anchor_registry,
-                                           mem_trackers));
-
+  auto rs(DiskRowSet::make_shared(
+      rowset_metadata, log_anchor_registry, mem_trackers));
   RETURN_NOT_OK(rs->Open(io_context));
-
-  rowset->swap(rs);
+  *rowset = std::move(rs);
   return Status::OK();
 }
 
diff --git a/src/kudu/tablet/diskrowset.h b/src/kudu/tablet/diskrowset.h
index 5e27adf..709bee2 100644
--- a/src/kudu/tablet/diskrowset.h
+++ b/src/kudu/tablet/diskrowset.h
@@ -46,6 +46,7 @@
 #include "kudu/util/bloom_filter.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
@@ -306,7 +307,9 @@ struct DiskRowSetSpace {
 
 class MajorDeltaCompaction;
 
-class DiskRowSet : public RowSet {
+class DiskRowSet :
+    public RowSet,
+    public enable_make_shared<DiskRowSet> {
  public:
   static const char *kMinKeyMetaEntryName;
   static const char *kMaxKeyMetaEntryName;
@@ -446,6 +449,11 @@ class DiskRowSet : public RowSet {
 
   virtual Status DebugDump(std::vector<std::string> *lines) override;
 
+ protected:
+  DiskRowSet(std::shared_ptr<RowSetMetadata> rowset_metadata,
+             log::LogAnchorRegistry* log_anchor_registry,
+             TabletMemTrackers mem_trackers);
+
  private:
   FRIEND_TEST(TabletHistoryGcTest, TestMajorDeltaCompactionOnSubsetOfColumns);
   FRIEND_TEST(TestCompaction, TestOneToOne);
@@ -455,10 +463,6 @@ class DiskRowSet : public RowSet {
   friend class CompactionInput;
   friend class Tablet;
 
-  DiskRowSet(std::shared_ptr<RowSetMetadata> rowset_metadata,
-             log::LogAnchorRegistry* log_anchor_registry,
-             TabletMemTrackers mem_trackers);
-
   Status Open(const fs::IOContext* io_context);
 
   // Create a new major delta compaction object to compact the specified 
columns.
diff --git a/src/kudu/tablet/memrowset.cc b/src/kudu/tablet/memrowset.cc
index 8a1db29..d4a4a05 100644
--- a/src/kudu/tablet/memrowset.cc
+++ b/src/kudu/tablet/memrowset.cc
@@ -94,10 +94,9 @@ Status MemRowSet::Create(int64_t id,
                          LogAnchorRegistry* log_anchor_registry,
                          shared_ptr<MemTracker> parent_tracker,
                          shared_ptr<MemRowSet>* mrs) {
-  shared_ptr<MemRowSet> local_mrs(new MemRowSet(
+  auto local_mrs(MemRowSet::make_shared(
       id, schema, log_anchor_registry, std::move(parent_tracker)));
-
-  mrs->swap(local_mrs);
+  *mrs = std::move(local_mrs);
   return Status::OK();
 }
 
diff --git a/src/kudu/tablet/memrowset.h b/src/kudu/tablet/memrowset.h
index 75a549c..5b67666 100644
--- a/src/kudu/tablet/memrowset.h
+++ b/src/kudu/tablet/memrowset.h
@@ -42,6 +42,7 @@
 #include "kudu/tablet/rowset_metadata.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/slice.h"
@@ -203,7 +204,8 @@ struct MSBTreeTraits : public btree::BTreeTraits {
 //
 // The data is kept sorted.
 class MemRowSet : public RowSet,
-                  public std::enable_shared_from_this<MemRowSet> {
+                  public std::enable_shared_from_this<MemRowSet>,
+                  public enable_make_shared<MemRowSet> {
  public:
   class Iterator;
 
@@ -423,14 +425,15 @@ class MemRowSet : public RowSet,
   Status MinorCompactDeltaStores(
       const fs::IOContext* /*io_context*/) override { return Status::OK(); }
 
- private:
-  friend class Iterator;
-
+ protected:
   MemRowSet(int64_t id,
             const Schema &schema,
             log::LogAnchorRegistry* log_anchor_registry,
             std::shared_ptr<MemTracker> parent_tracker);
 
+ private:
+  friend class Iterator;
+
   // Perform a "Reinsert" -- handle an insertion into a row which was 
previously
   // inserted and deleted, but still has an entry in the MemRowSet.
   Status Reinsert(Timestamp timestamp,
diff --git a/src/kudu/tablet/rowset_tree-test.cc 
b/src/kudu/tablet/rowset_tree-test.cc
index 62e7281..8c861268 100644
--- a/src/kudu/tablet/rowset_tree-test.cc
+++ b/src/kudu/tablet/rowset_tree-test.cc
@@ -42,6 +42,7 @@
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
+using std::make_shared;
 using std::shared_ptr;
 using std::string;
 using std::unordered_set;
@@ -62,8 +63,8 @@ static RowSetVector GenerateRandomRowSets(int num_sets) {
     int min = rand() % 9000;
     int max = min + 1000;
 
-    vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet(StringPrintf("%04d", 
min),
-                                                        StringPrintf("%04d", 
max))));
+    vec.push_back(make_shared<MockDiskRowSet>(
+        StringPrintf("%04d", min), StringPrintf("%04d", max)));
   }
   return vec;
 }
@@ -72,10 +73,10 @@ static RowSetVector GenerateRandomRowSets(int num_sets) {
 
 TEST_F(TestRowSetTree, TestTree) {
   RowSetVector vec;
-  vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet("0", "5")));
-  vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet("3", "5")));
-  vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet("5", "9")));
-  vec.push_back(shared_ptr<RowSet>(new MockMemRowSet()));
+  vec.push_back(make_shared<MockDiskRowSet>("0", "5"));
+  vec.push_back(make_shared<MockDiskRowSet>("3", "5"));
+  vec.push_back(make_shared<MockDiskRowSet>("5", "9"));
+  vec.push_back(make_shared<MockMemRowSet>());
 
   RowSetTree tree;
   ASSERT_OK(tree.Reset(vec));
@@ -360,11 +361,11 @@ TEST_F(TestRowSetTree, TestEndpointsConsistency) {
   RowSetVector vec = GenerateRandomRowSets(kNumRowSets);
   // Add pathological one-key rows
   for (int i = 0; i < 10; ++i) {
-    vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet(StringPrintf("%04d", 
11000),
-                                                        StringPrintf("%04d", 
11000))));
+    vec.push_back(make_shared<MockDiskRowSet>(
+        StringPrintf("%04d", 11000), StringPrintf("%04d", 11000)));
   }
-  vec.push_back(shared_ptr<RowSet>(new MockDiskRowSet(StringPrintf("%04d", 
12000),
-                                                      StringPrintf("%04d", 
12000))));
+  vec.push_back(make_shared<MockDiskRowSet>(
+      StringPrintf("%04d", 12000), StringPrintf("%04d", 12000)));
   // Make tree
   RowSetTree tree;
   ASSERT_OK(tree.Reset(vec));
diff --git a/src/kudu/tablet/tablet-test.cc b/src/kudu/tablet/tablet-test.cc
index ce4778e..52569bd 100644
--- a/src/kudu/tablet/tablet-test.cc
+++ b/src/kudu/tablet/tablet-test.cc
@@ -77,6 +77,9 @@ DEFINE_int32(testiterator_num_inserts, 1000,
 DEFINE_int32(testcompaction_num_rows, 1000,
              "Number of rows per rowset in TestCompaction");
 
+using kudu::cfile::ReaderOptions;
+using kudu::fs::ReadableBlock;
+using std::make_shared;
 using std::shared_ptr;
 using std::string;
 using std::unique_ptr;
@@ -85,9 +88,6 @@ using std::vector;
 namespace kudu {
 namespace tablet {
 
-using cfile::ReaderOptions;
-using fs::ReadableBlock;
-
 template<class SETUP>
 class TestTablet : public TabletTestBase<SETUP> {
   typedef SETUP Type;
@@ -586,9 +586,9 @@ TYPED_TEST(TestTablet, TestRowIteratorOrdered) {
         ASSERT_EQ(rowsPerBlock, block.nrows()) << "unexpected number of rows 
returned";
         for (int j = 0; j < rowsPerBlock; j++) {
           RowBlockRow row = block.row(j);
-          shared_ptr<faststring> encoded(new faststring());
+          auto encoded(make_shared<faststring>());
           this->client_schema_.EncodeComparableKey(row, encoded.get());
-          rows.push_back(encoded);
+          rows.push_back(std::move(encoded));
         }
       }
       // Verify the collected rows, checking that they are sorted.
@@ -955,7 +955,7 @@ TYPED_TEST(TestTablet, TestCountLiveRowsAfterShutdown) {
   NO_FATALS(this->CheckLiveRowsCount(max_rows));
 
   // Save the tablet's reference.
-  std::shared_ptr<Tablet> tablet = this->tablet();
+  shared_ptr<Tablet> tablet = this->tablet();
 
   // Shutdown the tablet.
   NO_FATALS(this->tablet()->Shutdown());
@@ -1065,7 +1065,7 @@ TYPED_TEST(TestTablet, TestFlushWithConcurrentMutation) {
 
   // Inject hooks which mutate those rows and add more rows at
   // each key stage of flushing.
-  shared_ptr<MyFlushHooks<TestFixture> > hooks(new 
MyFlushHooks<TestFixture>(this, false));
+  auto hooks(make_shared<MyFlushHooks<TestFixture>>(this, false));
   this->tablet()->SetFlushHooksForTests(hooks);
   this->tablet()->SetFlushCompactCommonHooksForTests(hooks);
 
@@ -1135,7 +1135,7 @@ TYPED_TEST(TestTablet, 
TestCompactionWithConcurrentMutation) {
 
   // Rows 20-26 inclusive will be inserted during the flush.
 
-  shared_ptr<MyCompactHooks<TestFixture> > hooks(new 
MyCompactHooks<TestFixture>(this, true));
+  auto hooks(make_shared<MyCompactHooks<TestFixture>>(this, true));
   this->tablet()->SetCompactionHooksForTests(hooks);
   this->tablet()->SetFlushCompactCommonHooksForTests(hooks);
 
@@ -1262,58 +1262,58 @@ TEST_F(TestTabletStringKey, TestSplitKeyRange) {
 
   RowSetVector old_rowset = comps->rowsets->all_rowsets();
   RowSetVector new_rowset = {
-      std::make_shared<MockDiskRowSet>("0", "9", 9000, 90),
-      std::make_shared<MockDiskRowSet>("2", "5", 3000, 30),
-      std::make_shared<MockDiskRowSet>("5", "6", 1000, 10)
+    make_shared<MockDiskRowSet>("0", "9", 9000, 90),
+    make_shared<MockDiskRowSet>("2", "5", 3000, 30),
+    make_shared<MockDiskRowSet>("5", "6", 1000, 10)
   };
   tablet->AtomicSwapRowSets(old_rowset, new_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "2", 2000),
-        KeyRange("2", "5", 6000),
-        KeyRange("5", "6", 2000),
-        KeyRange("6", "", 3000)
+    vector<KeyRange> result = {
+      KeyRange("", "2", 2000),
+      KeyRange("2", "5", 6000),
+      KeyRange("5", "6", 2000),
+      KeyRange("6", "", 3000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
   // target chunk size less than the min interval size
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "2", 2000),
-        KeyRange("2", "5", 6000),
-        KeyRange("5", "6", 2000),
-        KeyRange("6", "", 3000)
+    vector<KeyRange> result = {
+      KeyRange("", "2", 2000),
+      KeyRange("2", "5", 6000),
+      KeyRange("5", "6", 2000),
+      KeyRange("6", "", 3000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 900, &range);
     AssertChunks(result, range);
   }
   // target chunk size greater than the max interval size
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "", 13000)
+    vector<KeyRange> result = {
+      KeyRange("", "", 13000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 20000, &range);
     AssertChunks(result, range);
   }
   // test split key range with column
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "2", 40),
-        KeyRange("2", "5", 120),
-        KeyRange("5", "6", 40),
-        KeyRange("6", "", 60)
+    vector<KeyRange> result = {
+      KeyRange("", "2", 40),
+      KeyRange("2", "5", 120),
+      KeyRange("5", "6", 40),
+      KeyRange("6", "", 60)
     };
-    std::vector<ColumnId> col_ids;
+    vector<ColumnId> col_ids;
     col_ids.emplace_back(0);
     col_ids.emplace_back(1);
-    std::vector<KeyRange> range;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 60, &range);
     AssertChunks(result, range);
   }
@@ -1339,35 +1339,35 @@ TEST_F(TestTabletStringKey, TestSplitKeyRange) {
     ASSERT_OK(EncodedKey::DecodeEncodedString(this->schema_, &arena, 
u_encoded, &u_enc_key));
     // split key range in [1, 4)
     {
-      std::vector<KeyRange> result = {
-          KeyRange("1", "2", 1000),
-          KeyRange("2", "4", 4000)
+      vector<KeyRange> result = {
+        KeyRange("1", "2", 1000),
+        KeyRange("2", "4", 4000)
       };
-      std::vector<ColumnId> col_ids;
-      std::vector<KeyRange> range;
+      vector<ColumnId> col_ids;
+      vector<KeyRange> range;
       tablet->SplitKeyRange(l_enc_key.get(), u_enc_key.get(), col_ids, 2000, 
&range);
       AssertChunks(result, range);
     }
     // split key range in [min, 4)
     {
-      std::vector<KeyRange> result = {
-          KeyRange("", "2", 2000),
-          KeyRange("2", "4", 4000)
+      vector<KeyRange> result = {
+        KeyRange("", "2", 2000),
+        KeyRange("2", "4", 4000)
       };
-      std::vector<ColumnId> col_ids;
-      std::vector<KeyRange> range;
+      vector<ColumnId> col_ids;
+      vector<KeyRange> range;
       tablet->SplitKeyRange(nullptr, u_enc_key.get(), col_ids, 2000, &range);
       AssertChunks(result, range);
     }
     // split key range in [4, max)
     {
-      std::vector<KeyRange> result = {
-          KeyRange("4", "5", 2000),
-          KeyRange("5", "6", 2000),
-          KeyRange("6", "", 3000)
+      vector<KeyRange> result = {
+        KeyRange("4", "5", 2000),
+        KeyRange("5", "6", 2000),
+        KeyRange("6", "", 3000)
       };
-      std::vector<ColumnId> col_ids;
-      std::vector<KeyRange> range;
+      vector<ColumnId> col_ids;
+      vector<KeyRange> range;
       tablet->SplitKeyRange(u_enc_key.get(), nullptr, col_ids, 2000, &range);
       AssertChunks(result, range);
     }
@@ -1385,11 +1385,11 @@ TEST_F(TestTabletStringKey, 
TestSplitKeyRangeWithZeroRowSets) {
   RowSetVector new_rowset = {};
   tablet->AtomicSwapRowSets(old_rowset, new_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "", 0)
+    vector<KeyRange> result = {
+      KeyRange("", "", 0)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
@@ -1404,15 +1404,15 @@ TEST_F(TestTabletStringKey, 
TestSplitKeyRangeWithOneRowSet) {
 
   RowSetVector old_rowset = comps->rowsets->all_rowsets();
   RowSetVector new_rowset = {
-      std::make_shared<MockDiskRowSet>("0", "9", 9000, 90)
+    make_shared<MockDiskRowSet>("0", "9", 9000, 90)
   };
   tablet->AtomicSwapRowSets(old_rowset, new_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "", 9000)
+    vector<KeyRange> result = {
+      KeyRange("", "", 9000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
@@ -1427,20 +1427,20 @@ TEST_F(TestTabletStringKey, 
TestSplitKeyRangeWithNonOverlappingRowSets) {
   tablet->GetComponents(&comps);
   RowSetVector old_rowset = comps->rowsets->all_rowsets();
   RowSetVector without_gaps_rowset = {
-      std::make_shared<MockDiskRowSet>("0", "2", 2000, 20),
-      std::make_shared<MockDiskRowSet>("2", "5", 3000, 30),
-      std::make_shared<MockDiskRowSet>("5", "6", 1000, 10),
-      std::make_shared<MockDiskRowSet>("6", "9", 3000, 30)
+    make_shared<MockDiskRowSet>("0", "2", 2000, 20),
+    make_shared<MockDiskRowSet>("2", "5", 3000, 30),
+    make_shared<MockDiskRowSet>("5", "6", 1000, 10),
+    make_shared<MockDiskRowSet>("6", "9", 3000, 30)
   };
   tablet->AtomicSwapRowSets(old_rowset, without_gaps_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "2", 2000),
-        KeyRange("2", "5", 3000),
-        KeyRange("5", "", 4000)
+    vector<KeyRange> result = {
+      KeyRange("", "2", 2000),
+      KeyRange("2", "5", 3000),
+      KeyRange("5", "", 4000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
@@ -1449,18 +1449,18 @@ TEST_F(TestTabletStringKey, 
TestSplitKeyRangeWithNonOverlappingRowSets) {
   tablet->GetComponents(&comps);
   old_rowset = comps->rowsets->all_rowsets();
   RowSetVector with_gaps_rowset = {
-      std::make_shared<MockDiskRowSet>("0", "2", 2000, 20),
-      std::make_shared<MockDiskRowSet>("5", "6", 1000, 10),
-      std::make_shared<MockDiskRowSet>("6", "9", 3000, 30)
+    make_shared<MockDiskRowSet>("0", "2", 2000, 20),
+    make_shared<MockDiskRowSet>("5", "6", 1000, 10),
+    make_shared<MockDiskRowSet>("6", "9", 3000, 30)
   };
   tablet->AtomicSwapRowSets(old_rowset, with_gaps_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "6", 3000),
-        KeyRange("6", "", 3000)
+    vector<KeyRange> result = {
+      KeyRange("", "6", 3000),
+      KeyRange("6", "", 3000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
@@ -1475,20 +1475,20 @@ TEST_F(TestTabletStringKey, 
TestSplitKeyRangeWithMinimumValueRowSet) {
   tablet->GetComponents(&comps);
   RowSetVector old_rowset = comps->rowsets->all_rowsets();
   RowSetVector without_gaps_rowset = {
-      std::make_shared<MockDiskRowSet>("", "2", 2500, 20),
-      std::make_shared<MockDiskRowSet>("2", "5", 3000, 30),
-      std::make_shared<MockDiskRowSet>("5", "6", 1000, 10),
-      std::make_shared<MockDiskRowSet>("6", "9", 3000, 30)
+    make_shared<MockDiskRowSet>("", "2", 2500, 20),
+    make_shared<MockDiskRowSet>("2", "5", 3000, 30),
+    make_shared<MockDiskRowSet>("5", "6", 1000, 10),
+    make_shared<MockDiskRowSet>("6", "9", 3000, 30)
   };
   tablet->AtomicSwapRowSets(old_rowset, without_gaps_rowset);
   {
-    std::vector<KeyRange> result = {
-        KeyRange("", "2", 2500),
-        KeyRange("2", "5", 3000),
-        KeyRange("5", "", 4000)
+    vector<KeyRange> result = {
+      KeyRange("", "2", 2500),
+      KeyRange("2", "5", 3000),
+      KeyRange("5", "", 4000)
     };
-    std::vector<ColumnId> col_ids;
-    std::vector<KeyRange> range;
+    vector<ColumnId> col_ids;
+    vector<KeyRange> range;
     tablet->SplitKeyRange(nullptr, nullptr, col_ids, 3000, &range);
     AssertChunks(result, range);
   }
diff --git a/src/kudu/tablet/tablet.cc b/src/kudu/tablet/tablet.cc
index cd57dcc..8aedf8a 100644
--- a/src/kudu/tablet/tablet.cc
+++ b/src/kudu/tablet/tablet.cc
@@ -180,6 +180,7 @@ using kudu::clock::HybridClock;
 using kudu::fs::IOContext;
 using kudu::log::LogAnchorRegistry;
 using std::endl;
+using std::make_shared;
 using std::ostream;
 using std::pair;
 using std::shared_ptr;
@@ -305,18 +306,19 @@ Status Tablet::Open() {
     rowsets_opened.push_back(rowset);
   }
 
-  shared_ptr<RowSetTree> new_rowset_tree(new RowSetTree());
-  CHECK_OK(new_rowset_tree->Reset(rowsets_opened));
-
-  // Now that the current state is loaded, create the new MemRowSet with the 
next id.
-  shared_ptr<MemRowSet> new_mrs;
-  RETURN_NOT_OK(MemRowSet::Create(next_mrs_id_++, *schema(),
-                                  log_anchor_registry_.get(),
-                                  mem_trackers_.tablet_tracker,
-                                  &new_mrs));
   {
+    auto new_rowset_tree(make_shared<RowSetTree>());
+    CHECK_OK(new_rowset_tree->Reset(rowsets_opened));
+
+    // Now that the current state is loaded, create the new MemRowSet with the 
next id.
+    shared_ptr<MemRowSet> new_mrs;
+    RETURN_NOT_OK(MemRowSet::Create(next_mrs_id_++, *schema(),
+                                    log_anchor_registry_.get(),
+                                    mem_trackers_.tablet_tracker,
+                                    &new_mrs));
     std::lock_guard<rw_spinlock> lock(component_lock_);
-    components_ = new TabletComponents(new_mrs, new_rowset_tree);
+    components_.reset(new TabletComponents(
+        std::move(new_mrs), std::move(new_rowset_tree)));
   }
 
   // Compute the initial average rowset height.
@@ -1071,11 +1073,10 @@ void Tablet::AtomicSwapRowSetsUnlocked(const 
RowSetVector &to_remove,
                                        const RowSetVector &to_add) {
   DCHECK(component_lock_.is_locked());
 
-  shared_ptr<RowSetTree> new_tree(new RowSetTree());
-  ModifyRowSetTree(*components_->rowsets,
-                   to_remove, to_add, new_tree.get());
+  auto new_tree(make_shared<RowSetTree>());
+  ModifyRowSetTree(*components_->rowsets, to_remove, to_add, new_tree.get());
 
-  components_ = new TabletComponents(components_->memrowset, new_tree);
+  components_ = new TabletComponents(components_->memrowset, 
std::move(new_tree));
 }
 
 Status Tablet::DoMajorDeltaCompaction(const vector<ColumnId>& col_ids,
@@ -1165,14 +1166,13 @@ Status 
Tablet::ReplaceMemRowSetUnlocked(RowSetsInCompaction *compaction,
                                   log_anchor_registry_.get(),
                                   mem_trackers_.tablet_tracker,
                                   &new_mrs));
-  shared_ptr<RowSetTree> new_rst(new RowSetTree());
+  auto new_rst(make_shared<RowSetTree>());
   ModifyRowSetTree(*components_->rowsets,
                    RowSetVector(), // remove nothing
                    { *old_ms }, // add the old MRS
                    new_rst.get());
-
   // Swap it in
-  components_ = new TabletComponents(new_mrs, new_rst);
+  components_.reset(new TabletComponents(std::move(new_mrs), 
std::move(new_rst)));
   return Status::OK();
 }
 
diff --git a/src/kudu/tools/ksck-test.cc b/src/kudu/tools/ksck-test.cc
index 5e9ffd0..643d401 100644
--- a/src/kudu/tools/ksck-test.cc
+++ b/src/kudu/tools/ksck-test.cc
@@ -75,6 +75,7 @@ using kudu::cluster_summary::TabletSummary;
 using kudu::server::GetFlagsResponsePB;
 using kudu::tablet::TabletDataState;
 
+using std::make_shared;
 using std::ostringstream;
 using std::shared_ptr;
 using std::static_pointer_cast;
@@ -279,7 +280,7 @@ class KsckTest : public KuduTest {
     for (int i = 0; i < 3; i++) {
       const string uuid = Substitute("master-id-$0", i);
       const string addr = Substitute("master-$0", i);
-      auto master = std::make_shared<MockKsckMaster>(addr, uuid, 
IsGetFlagsAvailable());
+      auto master = make_shared<MockKsckMaster>(addr, uuid, 
IsGetFlagsAvailable());
       master->cstate_ = cstate;
       cluster_->masters_.push_back(master);
     }
@@ -287,7 +288,7 @@ class KsckTest : public KuduTest {
     KsckCluster::TSMap tablet_servers;
     for (int i = 0; i < 3; i++) {
       string name = Substitute("ts-id-$0", i);
-      auto ts = std::make_shared<MockKsckTabletServer>(name, 
IsGetFlagsAvailable());
+      auto ts = make_shared<MockKsckTabletServer>(name, IsGetFlagsAvailable());
       InsertOrDie(&tablet_servers, ts->uuid(), ts);
     }
     cluster_->tablet_servers_.swap(tablet_servers);
@@ -334,7 +335,7 @@ class KsckTest : public KuduTest {
     CreateDefaultAssignmentPlan(1);
 
     auto table = CreateAndAddTable("test", 1);
-    shared_ptr<KsckTablet> tablet(new KsckTablet(table.get(), "tablet-id-1"));
+    auto tablet(make_shared<KsckTablet>(table.get(), "tablet-id-1"));
     CreateAndFillTablet(tablet, 1, true, true);
     table->set_tablets({ tablet });
   }
@@ -348,10 +349,10 @@ class KsckTest : public KuduTest {
 
     vector<shared_ptr<KsckTablet>> tablets;
     for (int i = 0; i < num_tablets; i++) {
-      shared_ptr<KsckTablet> tablet(new KsckTablet(
+      auto tablet(make_shared<KsckTablet>(
           table.get(), Substitute("$0tablet-id-$1", tablet_id_prefix, i)));
       CreateAndFillTablet(tablet, num_replicas, true, true);
-      tablets.push_back(tablet);
+      tablets.push_back(std::move(tablet));
     }
     table->set_tablets(tablets);
   }
@@ -364,10 +365,10 @@ class KsckTest : public KuduTest {
 
     vector<shared_ptr<KsckTablet>> tablets;
     for (int i = 0; i < num_tablets; i++) {
-      shared_ptr<KsckTablet> tablet(new KsckTablet(
+      auto tablet(make_shared<KsckTablet>(
           table.get(), Substitute("tablet-id-$0", i)));
       CreateAndFillTablet(tablet, num_replicas, true, i != 0);
-      tablets.push_back(tablet);
+      tablets.push_back(std::move(tablet));
     }
     table->set_tablets(tablets);
   }
@@ -378,14 +379,14 @@ class KsckTest : public KuduTest {
 
     auto table = CreateAndAddTable("test", 3);
 
-    shared_ptr<KsckTablet> tablet(new KsckTablet(table.get(), "tablet-id-1"));
+    auto tablet(make_shared<KsckTablet>(table.get(), "tablet-id-1"));
     CreateAndFillTablet(tablet, 2, false, true);
     table->set_tablets({ tablet });
   }
 
   shared_ptr<KsckTable> CreateAndAddTable(const string& id_and_name, int 
num_replicas) {
-    shared_ptr<KsckTable> table(new KsckTable(id_and_name, id_and_name,
-                                              Schema(), num_replicas));
+    auto table(make_shared<KsckTable>(
+        id_and_name, id_and_name, Schema(), num_replicas));
     cluster_->tables_.push_back(table);
     return table;
   }
@@ -1831,7 +1832,7 @@ TEST_F(KsckTest, TestChecksumWithAllPeersUnhealthy) {
   const char* const new_uuid = "new";
   EmplaceOrDie(&cluster_->tablet_servers_,
                new_uuid,
-               std::make_shared<MockKsckTabletServer>(new_uuid, 
IsGetFlagsAvailable()));
+               make_shared<MockKsckTabletServer>(new_uuid, 
IsGetFlagsAvailable()));
 
   // The checksum should fail for tablet because none of its replicas are
   // available to provide a timestamp.
diff --git a/src/kudu/tools/ksck_remote.cc b/src/kudu/tools/ksck_remote.cc
index 7627aca..18fe7b2 100644
--- a/src/kudu/tools/ksck_remote.cc
+++ b/src/kudu/tools/ksck_remote.cc
@@ -95,6 +95,7 @@ using kudu::rpc::RpcController;
 using kudu::server::GenericServiceProxy;
 using kudu::server::GetFlagsRequestPB;
 using kudu::server::GetFlagsResponsePB;
+using std::make_shared;
 using std::shared_ptr;
 using std::string;
 using std::unique_ptr;
@@ -570,7 +571,7 @@ Status RemoteKsckCluster::RetrieveTabletServers() {
       continue;
     }
     HostPort hp = HostPortFromPB(ts_pb.registration().rpc_addresses(0));
-    auto ts = std::make_shared<RemoteKsckTabletServer>(uuid, hp, messenger_, 
ts_pb.location());
+    auto ts = make_shared<RemoteKsckTabletServer>(uuid, hp, messenger_, 
ts_pb.location());
     RETURN_NOT_OK(ts->Init());
     EmplaceOrUpdate(&tablet_servers, uuid, std::move(ts));
   }
@@ -609,11 +610,9 @@ Status RemoteKsckCluster::RetrieveTablesList() {
                                  table_name, s.ToString());
         return;
       }
-      shared_ptr<KsckTable> table(new KsckTable(t->id(),
-                                                table_name,
-                                                
KuduSchema::ToSchema(t->schema()),
-                                                t->num_replicas()));
       {
+        auto table(make_shared<KsckTable>(
+            t->id(), table_name, KuduSchema::ToSchema(t->schema()), 
t->num_replicas()));
         std::lock_guard<simple_spinlock> l(tables_lock);
         tables.emplace_back(std::move(table));
       }
@@ -667,7 +666,7 @@ Status RemoteKsckCluster::RetrieveTabletsList(const 
shared_ptr<KsckTable>& table
         new KsckTablet(table.get(), t->tablet().id()));
     vector<shared_ptr<KsckTabletReplica>> replicas;
     for (const auto* r : t->tablet().replicas()) {
-      replicas.push_back(std::make_shared<KsckTabletReplica>(
+      replicas.push_back(make_shared<KsckTabletReplica>(
           r->ts().uuid(), r->is_leader(), ReplicaController::is_voter(*r)));
     }
     tablet->set_replicas(std::move(replicas));
diff --git a/src/kudu/tools/tool_action_cluster.cc 
b/src/kudu/tools/tool_action_cluster.cc
index 5c45c70..66fd411 100644
--- a/src/kudu/tools/tool_action_cluster.cc
+++ b/src/kudu/tools/tool_action_cluster.cc
@@ -49,6 +49,7 @@
 using kudu::rebalance::Rebalancer;
 using std::cout;
 using std::endl;
+using std::make_shared;
 using std::make_tuple;
 using std::shared_ptr;
 using std::string;
@@ -185,7 +186,7 @@ Status RunKsck(const RunnerContext& context) {
                         "unable to build KsckCluster");
   cluster->set_table_filters(Split(FLAGS_tables, ",", strings::SkipEmpty()));
   cluster->set_tablet_id_filters(Split(FLAGS_tablets, ",", 
strings::SkipEmpty()));
-  shared_ptr<Ksck> ksck(new Ksck(cluster));
+  auto ksck(make_shared<Ksck>(cluster));
 
   ksck->set_print_sections(Split(FLAGS_sections, ",", strings::SkipEmpty()));
 
@@ -230,7 +231,7 @@ Status EvaluateMoveSingleReplicasFlag(const vector<string>& 
master_addresses,
   shared_ptr<KsckCluster> cluster;
   RETURN_NOT_OK_PREPEND(RemoteKsckCluster::Build(master_addresses, &cluster),
                         "unable to build KsckCluster");
-  shared_ptr<Ksck> ksck(new Ksck(cluster));
+  auto ksck(make_shared<Ksck>(cluster));
 
   // Ignoring the result of the Ksck::Run() method: it's possible the cluster
   // is not completely healthy but rebalancing can proceed; for example,
diff --git a/src/kudu/tserver/tablet_server-test.cc 
b/src/kudu/tserver/tablet_server-test.cc
index e20fda9..8f28627 100644
--- a/src/kudu/tserver/tablet_server-test.cc
+++ b/src/kudu/tserver/tablet_server-test.cc
@@ -137,6 +137,7 @@ using kudu::tablet::Tablet;
 using kudu::tablet::TabletReplica;
 using kudu::tablet::TabletStatePB;
 using kudu::tablet::TabletSuperBlockPB;
+using std::make_shared;
 using std::map;
 using std::pair;
 using std::set;
@@ -1567,7 +1568,7 @@ TEST_F(TabletServerTest, 
TestRecoveryWithMutationsWhileFlushing) {
 
   InsertTestRowsRemote(1, 7);
 
-  shared_ptr<MyCommonHooks> hooks(new MyCommonHooks(this));
+  auto hooks(make_shared<MyCommonHooks>(this));
 
   tablet_replica_->tablet()->SetFlushHooksForTests(hooks);
   tablet_replica_->tablet()->SetCompactionHooksForTests(hooks);
@@ -1607,7 +1608,7 @@ TEST_F(TabletServerTest, 
TestRecoveryWithMutationsWhileFlushingAndCompacting) {
 
   InsertTestRowsRemote(1, 7);
 
-  shared_ptr<MyCommonHooks> hooks(new MyCommonHooks(this));
+  auto hooks(make_shared<MyCommonHooks>(this));
 
   tablet_replica_->tablet()->SetFlushHooksForTests(hooks);
   tablet_replica_->tablet()->SetCompactionHooksForTests(hooks);
@@ -4012,7 +4013,7 @@ TEST_F(TabletServerTest, TestKudu120PreRequisites) {
   // Add a hook so that we can make the log wait right after an append
   // (before the callback is triggered).
   log::Log* log = tablet_replica_->log();
-  shared_ptr<DelayFsyncLogHook> log_hook(new DelayFsyncLogHook);
+  auto log_hook(make_shared<DelayFsyncLogHook>());
   log->SetLogFaultHooksForTests(log_hook);
 
   // Now start an op (delete) and stop just before commit.
diff --git a/src/kudu/tserver/tablet_server_authorization-test.cc 
b/src/kudu/tserver/tablet_server_authorization-test.cc
index c4178c4..c61d978 100644
--- a/src/kudu/tserver/tablet_server_authorization-test.cc
+++ b/src/kudu/tserver/tablet_server_authorization-test.cc
@@ -74,8 +74,23 @@
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
+using kudu::pb_util::SecureShortDebugString;
+using kudu::rpc::ErrorStatusPB;
+using kudu::rpc::RpcController;
+using kudu::security::ColumnPrivilegePB;
+using kudu::security::PrivateKey;
+using kudu::security::SignedTokenPB;
+using kudu::security::TablePrivilegePB;
+using kudu::security::TokenSigner;
+using kudu::security::TokenSigningPrivateKeyPB;
+using kudu::security::TokenSigningPublicKeyPB;
+using kudu::security::TokenVerifier;
+using kudu::tablet::TabletReplica;
+using kudu::tablet::WritePrivileges;
+using kudu::tablet::WritePrivilegeToString;
+using kudu::tablet::WritePrivilegeType;
+using std::make_shared;
 using std::set;
-using std::shared_ptr;
 using std::string;
 using std::unique_ptr;
 using std::unordered_map;
@@ -87,23 +102,6 @@ DECLARE_bool(tserver_enforce_access_control);
 DECLARE_double(tserver_inject_invalid_authz_token_ratio);
 
 namespace kudu {
-
-using pb_util::SecureShortDebugString;
-using rpc::ErrorStatusPB;
-using rpc::RpcController;
-using security::ColumnPrivilegePB;
-using security::PrivateKey;
-using security::SignedTokenPB;
-using security::TablePrivilegePB;
-using security::TokenSigner;
-using security::TokenSigningPrivateKeyPB;
-using security::TokenSigningPublicKeyPB;
-using security::TokenVerifier;
-using tablet::TabletReplica;
-using tablet::WritePrivileges;
-using tablet::WritePrivilegeToString;
-using tablet::WritePrivilegeType;
-
 namespace tserver {
 
 namespace {
@@ -211,7 +209,7 @@ class AuthzTabletServerTestBase : public 
TabletServerTestBase {
     proxy_->set_user_credentials(user);
 
     TokenSigningPrivateKeyPB tsk = GetTokenSigningPrivateKey(1);
-    shared_ptr<TokenVerifier> verifier(new TokenVerifier());
+    auto verifier(make_shared<TokenVerifier>());
     // These tests aren't targeted at testing expiration, so pass in arbitrary
     // expiration values.
     signer_.reset(new TokenSigner(3600, 3600, 3600, verifier));
@@ -283,7 +281,7 @@ TEST_P(AuthzTabletServerTest, TestInvalidAuthzTokens) {
   token_creators.emplace_back([&] {
     LOG(INFO) << "Generating expired authz token";
     TokenSigningPrivateKeyPB tsk = GetTokenSigningPrivateKey(2);
-    shared_ptr<TokenVerifier> verifier(new TokenVerifier());
+    auto verifier(make_shared<TokenVerifier>());
     TokenSigner expired_signer(3600, /*authz_token_validity_seconds=*/1, 3600, 
verifier);
     CHECK_OK(expired_signer.ImportKeys({ tsk }));
     vector<TokenSigningPublicKeyPB> expired_public_keys = 
verifier->ExportKeys();
diff --git a/src/kudu/util/make_shared.h b/src/kudu/util/make_shared.h
index 649cae7..a857274 100644
--- a/src/kudu/util/make_shared.h
+++ b/src/kudu/util/make_shared.h
@@ -20,7 +20,7 @@
 #include <memory>
 #include <utility>
 
-// It isn't possible to use 'std::make_shared' on a class with private or 
protected
+// It isn't possible to use 'std::make_shared' on a class with protected
 // constructors. Using friends as a workaround worked in some earlier 
libc++/libstdcxx
 // versions, but in the latest versions there are some static_asserts that 
seem to defeat
 // this trickery. So, instead, we rely on the "curiously recurring template 
pattern" (CRTP)
diff --git a/src/kudu/util/test_graph.cc b/src/kudu/util/test_graph.cc
index 73b1642..44b28a1 100644
--- a/src/kudu/util/test_graph.cc
+++ b/src/kudu/util/test_graph.cc
@@ -56,16 +56,16 @@ TimeSeriesCollector::~TimeSeriesCollector() {
   }
 }
 
-shared_ptr<TimeSeries> TimeSeriesCollector::GetTimeSeries(const string &key) {
+shared_ptr<TimeSeries> TimeSeriesCollector::GetTimeSeries(const string& key) {
   MutexLock l(series_lock_);
   SeriesMap::const_iterator it = series_map_.find(key);
-  if (it == series_map_.end()) {
-    shared_ptr<TimeSeries> ts(new TimeSeries());
-    series_map_[key] = ts;
-    return ts;
-  } else {
+  if (it != series_map_.end()) {
     return (*it).second;
   }
+
+  auto ts(std::make_shared<TimeSeries>());
+  series_map_[key] = ts;
+  return ts;
 }
 
 void TimeSeriesCollector::StartDumperThread() {
@@ -102,7 +102,7 @@ void TimeSeriesCollector::DumperThread() {
 }
 
 void TimeSeriesCollector::BuildMetricsString(
-  WallTime time_since_start, faststring *dst_buf) const {
+  WallTime time_since_start, faststring* dst_buf) const {
   MutexLock l(series_lock_);
 
   dst_buf->append(StringPrintf("{ \"scope\": \"%s\", \"time\": %.3f",
@@ -115,5 +115,4 @@ void TimeSeriesCollector::BuildMetricsString(
   dst_buf->append("}");
 }
 
-
 } // namespace kudu
diff --git a/src/kudu/util/test_graph.h b/src/kudu/util/test_graph.h
index 3f1c70a..c073629 100644
--- a/src/kudu/util/test_graph.h
+++ b/src/kudu/util/test_graph.h
@@ -34,20 +34,18 @@ class faststring; // NOLINT
 
 class TimeSeries {
  public:
+  TimeSeries() :
+    val_(0) {
+  }
+
   void AddValue(double val);
   void SetValue(double val);
 
   double value() const;
 
  private:
-  friend class TimeSeriesCollector;
-
   DISALLOW_COPY_AND_ASSIGN(TimeSeries);
 
-  TimeSeries() :
-    val_(0)
-  {}
-
   mutable simple_spinlock lock_;
   double val_;
 };
@@ -59,7 +57,7 @@ class TimeSeriesCollector {
 
   ~TimeSeriesCollector();
 
-  std::shared_ptr<TimeSeries> GetTimeSeries(const std::string &key);
+  std::shared_ptr<TimeSeries> GetTimeSeries(const std::string& key);
   void StartDumperThread();
   void StopDumperThread();
 
@@ -67,11 +65,11 @@ class TimeSeriesCollector {
   DISALLOW_COPY_AND_ASSIGN(TimeSeriesCollector);
 
   void DumperThread();
-  void BuildMetricsString(WallTime time_since_start, faststring *dst_buf) 
const;
+  void BuildMetricsString(WallTime time_since_start, faststring* dst_buf) 
const;
 
   std::string scope_;
 
-  typedef std::unordered_map<std::string, std::shared_ptr<TimeSeries> > 
SeriesMap;
+  typedef std::unordered_map<std::string, std::shared_ptr<TimeSeries>> 
SeriesMap;
   SeriesMap series_map_;
   mutable Mutex series_lock_;
 
diff --git a/src/kudu/util/threadpool-test.cc b/src/kudu/util/threadpool-test.cc
index b8faac4..93806f8 100644
--- a/src/kudu/util/threadpool-test.cc
+++ b/src/kudu/util/threadpool-test.cc
@@ -55,6 +55,7 @@
 #include "kudu/util/trace.h"
 
 using std::atomic;
+using std::make_shared;
 using std::shared_ptr;
 using std::string;
 using std::thread;
@@ -494,7 +495,7 @@ TEST_F(ThreadPoolTest, TestSlowDestructor) {
     // itself, so that the delay is incurred by that thread and not the task
     // submission thread. Without C++14 capture-by-move semantics we have to
     // work a little bit harder to accomplish that.
-    shared_ptr<SlowDestructorRunnable> task(new SlowDestructorRunnable());
+    auto task = make_shared<SlowDestructorRunnable>();
     auto wrapper = [task]() { task->Run(); };
     task.reset();
     ASSERT_OK(pool_->Submit(std::move(wrapper)));
@@ -552,7 +553,7 @@ TEST_P(ThreadPoolTestTokenTypes, 
TestTokenSubmitsProcessedConcurrently) {
   SCOPED_CLEANUP({
       alarm(0); // Disable alarm on test exit.
   });
-  shared_ptr<Barrier> b = std::make_shared<Barrier>(kNumTokens + 1);
+  auto b = make_shared<Barrier>(kNumTokens + 1);
   for (int i = 0; i < kNumTokens; i++) {
     tokens.emplace_back(pool_->NewToken(GetParam()));
     ASSERT_OK(tokens.back()->Submit([b]() {
@@ -575,7 +576,7 @@ TEST_F(ThreadPoolTest, TestTokenSubmitsNonSequential) {
   SCOPED_CLEANUP({
       alarm(0); // Disable alarm on test exit.
   });
-  shared_ptr<Barrier> b = std::make_shared<Barrier>(kNumSubmissions + 1);
+  auto b = make_shared<Barrier>(kNumSubmissions + 1);
   unique_ptr<ThreadPoolToken> t = 
pool_->NewToken(ThreadPool::ExecutionMode::CONCURRENT);
   for (int i = 0; i < kNumSubmissions; i++) {
     ASSERT_OK(t->Submit([b]() {

Reply via email to