diff --git a/src/braft/raft_meta.cpp b/src/braft/raft_meta.cpp index 57590188..2ce73a51 100644 --- a/src/braft/raft_meta.cpp +++ b/src/braft/raft_meta.cpp @@ -106,7 +106,7 @@ class MetaStorageManager { typedef butil::DoublyBufferedData DoublyBufferedMetaStorageMap; static size_t _add(MetaStorageMap& m, const std::string& path, - const scoped_refptr mss) { + const scoped_refptr& mss) { std::pair iter = m.insert(std::make_pair(path, mss)); if (iter.second) { diff --git a/src/braft/raft_meta.h b/src/braft/raft_meta.h index 8b849904..2d4200a0 100644 --- a/src/braft/raft_meta.h +++ b/src/braft/raft_meta.h @@ -143,11 +143,12 @@ friend class scoped_refptr; public: explicit KVBasedMergedMetaStorageImpl(const std::string& path) - : _is_inited(false), _path(path) {} + : _is_inited(false), _path(path), _db(nullptr) {} KVBasedMergedMetaStorageImpl() {} virtual ~KVBasedMergedMetaStorageImpl() { if (_db) { delete _db; + _db = nullptr; } }