Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1500)

Unified Diff: components/leveldb/leveldb_database_impl.h

Issue 2722293002: Fix lifetime of leveldb::MojoEnv instances. (Closed)
Patch Set: minor cleanups Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/leveldb/leveldb_database_impl.h
diff --git a/components/leveldb/leveldb_database_impl.h b/components/leveldb/leveldb_database_impl.h
index f621c5f50574e636bc474adb9f0ab7f07d069b83..3bb7123d20240b4cd785563339a3605f739acdda 100644
--- a/components/leveldb/leveldb_database_impl.h
+++ b/components/leveldb/leveldb_database_impl.h
@@ -14,11 +14,16 @@
namespace leveldb {
+class MojoEnv;
+
// The backing to a database object that we pass to our called.
class LevelDBDatabaseImpl : public mojom::LevelDBDatabase {
public:
- LevelDBDatabaseImpl(std::unique_ptr<leveldb::Env> environment,
- std::unique_ptr<leveldb::DB> db);
+ LevelDBDatabaseImpl(std::unique_ptr<Env> owned_environment,
+ std::unique_ptr<DB> db);
+ LevelDBDatabaseImpl(MojoEnv* environment,
+ std::string directory_prefix,
+ std::unique_ptr<DB> db);
~LevelDBDatabaseImpl() override;
// Overridden from LevelDBDatabase:
@@ -68,8 +73,10 @@ class LevelDBDatabaseImpl : public mojom::LevelDBDatabase {
leveldb::Status DeletePrefixedHelper(const leveldb::Slice& key_prefix,
leveldb::WriteBatch* batch);
- std::unique_ptr<leveldb::Env> environment_;
- std::unique_ptr<leveldb::DB> db_;
+ std::unique_ptr<Env> owned_environment_;
+ MojoEnv* environment_ = nullptr;
+ std::string directory_prefix_;
+ std::unique_ptr<DB> db_;
std::map<base::UnguessableToken, const Snapshot*> snapshot_map_;

Powered by Google App Engine
This is Rietveld 408576698