Chromium Code Reviews| 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, |