Index: components/leveldb/leveldb_database_impl.cc |
diff --git a/components/leveldb/leveldb_database_impl.cc b/components/leveldb/leveldb_database_impl.cc |
index 5387409d2d4b055f526d2ec0c7d58eb4658751db..f688e56e9b85cee50e5d2cded7bd4a651b1f34ed 100644 |
--- a/components/leveldb/leveldb_database_impl.cc |
+++ b/components/leveldb/leveldb_database_impl.cc |
@@ -34,16 +34,25 @@ leveldb::Status ForEachWithPrefix(leveldb::DB* db, |
} // namespace |
-LevelDBDatabaseImpl::LevelDBDatabaseImpl( |
- std::unique_ptr<leveldb::Env> environment, |
- std::unique_ptr<leveldb::DB> db) |
- : environment_(std::move(environment)), db_(std::move(db)) {} |
+LevelDBDatabaseImpl::LevelDBDatabaseImpl(std::unique_ptr<Env> owned_environment, |
+ std::unique_ptr<DB> db) |
+ : owned_environment_(std::move(owned_environment)), db_(std::move(db)) {} |
+ |
+LevelDBDatabaseImpl::LevelDBDatabaseImpl(MojoEnv* environment, |
+ std::string directory_prefix, |
+ std::unique_ptr<leveldb::DB> db) |
+ : environment_(environment), |
+ directory_prefix_(std::move(directory_prefix)), |
+ db_(std::move(db)) {} |
LevelDBDatabaseImpl::~LevelDBDatabaseImpl() { |
for (auto& p : iterator_map_) |
delete p.second; |
for (auto& p : snapshot_map_) |
db_->ReleaseSnapshot(p.second); |
+ if (environment_) { |
+ environment_->UnregisterDirectory(directory_prefix_); |
michaeln
2017/03/27 20:24:10
oh, the unreg call is far removed from the reg cal
Marijn Kruisselbrink
2017/03/31 23:26:24
Yeah, before unreg happened in ~MojoEnv, but now t
|
+ } |
} |
void LevelDBDatabaseImpl::Put(const std::vector<uint8_t>& key, |