Index: components/leveldb/leveldb_service_impl.cc |
diff --git a/components/leveldb/leveldb_service_impl.cc b/components/leveldb/leveldb_service_impl.cc |
index 587a78edcba8b80ae4d239fd69e999ee04f361e9..6df7ad0b9cc738dc6ef6b73eb7ef6999e3e7c874 100644 |
--- a/components/leveldb/leveldb_service_impl.cc |
+++ b/components/leveldb/leveldb_service_impl.cc |
@@ -10,6 +10,7 @@ |
#include "components/leveldb/env_mojo.h" |
#include "components/leveldb/leveldb_database_impl.h" |
#include "components/leveldb/public/cpp/util.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
#include "third_party/leveldatabase/env_chromium.h" |
#include "third_party/leveldatabase/src/helpers/memenv/memenv.h" |
#include "third_party/leveldatabase/src/include/leveldb/db.h" |
@@ -60,8 +61,9 @@ void LevelDBServiceImpl::OpenWithOptions( |
leveldb::Status s = leveldb::DB::Open(options, dbname, &db); |
if (s.ok()) { |
- new LevelDBDatabaseImpl(std::move(database), std::move(env_mojo), |
- base::WrapUnique(db)); |
+ mojo::MakeStrongBinding(base::MakeUnique<LevelDBDatabaseImpl>( |
+ std::move(env_mojo), base::WrapUnique(db)), |
+ std::move(database)); |
} |
callback.Run(LeveldbStatusToError(s)); |
@@ -82,8 +84,9 @@ void LevelDBServiceImpl::OpenInMemory( |
leveldb::Status s = leveldb::DB::Open(options, "", &db); |
if (s.ok()) { |
- new LevelDBDatabaseImpl(std::move(database), std::move(env), |
- base::WrapUnique(db)); |
+ mojo::MakeStrongBinding(base::MakeUnique<LevelDBDatabaseImpl>( |
+ std::move(env), base::WrapUnique(db)), |
+ std::move(database)); |
} |
callback.Run(LeveldbStatusToError(s)); |