| Index: net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
| diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
| index ce16b74f006bb54267500837efa63f5642e43000..02fa976174c5af788df1fdf84fc2236c13d88ef9 100644
|
| --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
| +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "net/extras/sqlite/sqlite_persistent_cookie_store.h"
|
|
|
| +#include <iterator>
|
| #include <map>
|
| #include <memory>
|
| #include <set>
|
| @@ -108,8 +109,9 @@ class SQLitePersistentCookieStore::Backend
|
|
|
| // Steps through all results of |smt|, makes a cookie from each, and adds the
|
| // cookie to |cookies|. This method also updates |num_cookies_read_|.
|
| - void MakeCookiesFromSQLStatement(std::vector<CanonicalCookie*>* cookies,
|
| - sql::Statement* statement);
|
| + void MakeCookiesFromSQLStatement(
|
| + std::vector<std::unique_ptr<CanonicalCookie>>* cookies,
|
| + sql::Statement* statement);
|
|
|
| // Batch a cookie addition.
|
| void AddCookie(const CanonicalCookie& cc);
|
| @@ -138,10 +140,6 @@ class SQLitePersistentCookieStore::Backend
|
| DCHECK(!db_.get()) << "Close should have already been called.";
|
| DCHECK_EQ(0u, num_pending_);
|
| DCHECK(pending_.empty());
|
| -
|
| - for (CanonicalCookie* cookie : cookies_) {
|
| - delete cookie;
|
| - }
|
| }
|
|
|
| // Database upgrade statements.
|
| @@ -254,9 +252,7 @@ class SQLitePersistentCookieStore::Backend
|
| // Temporary buffer for cookies loaded from DB. Accumulates cookies to reduce
|
| // the number of messages sent to the client runner. Sent back in response to
|
| // individual load requests for domain keys or when all loading completes.
|
| - // Ownership of the cookies in this vector is transferred to the client in
|
| - // response to individual load requests or when all loading completes.
|
| - std::vector<CanonicalCookie*> cookies_;
|
| + std::vector<std::unique_ptr<CanonicalCookie>> cookies_;
|
|
|
| // Map of domain keys(eTLD+1) to domains/hosts that are to be loaded from DB.
|
| std::map<std::string, std::set<std::string>> keys_to_load_;
|
| @@ -620,13 +616,13 @@ void SQLitePersistentCookieStore::Backend::Notify(
|
| bool load_success) {
|
| DCHECK(client_task_runner_->RunsTasksOnCurrentThread());
|
|
|
| - std::vector<CanonicalCookie*> cookies;
|
| + std::vector<std::unique_ptr<CanonicalCookie>> cookies;
|
| {
|
| base::AutoLock locked(lock_);
|
| cookies.swap(cookies_);
|
| }
|
|
|
| - loaded_callback.Run(cookies);
|
| + loaded_callback.Run(std::move(cookies));
|
| }
|
|
|
| bool SQLitePersistentCookieStore::Backend::InitializeDatabase() {
|
| @@ -792,7 +788,7 @@ bool SQLitePersistentCookieStore::Backend::LoadCookiesForDomains(
|
| return false;
|
| }
|
|
|
| - std::vector<CanonicalCookie*> cookies;
|
| + std::vector<std::unique_ptr<CanonicalCookie>> cookies;
|
| std::set<std::string>::const_iterator it = domains.begin();
|
| for (; it != domains.end(); ++it) {
|
| smt.BindString(0, *it);
|
| @@ -801,13 +797,13 @@ bool SQLitePersistentCookieStore::Backend::LoadCookiesForDomains(
|
| }
|
| {
|
| base::AutoLock locked(lock_);
|
| - cookies_.insert(cookies_.end(), cookies.begin(), cookies.end());
|
| + std::move(cookies.begin(), cookies.end(), std::back_inserter(cookies_));
|
| }
|
| return true;
|
| }
|
|
|
| void SQLitePersistentCookieStore::Backend::MakeCookiesFromSQLStatement(
|
| - std::vector<CanonicalCookie*>* cookies,
|
| + std::vector<std::unique_ptr<CanonicalCookie>>* cookies,
|
| sql::Statement* statement) {
|
| sql::Statement& smt = *statement;
|
| while (smt.Step()) {
|
| @@ -835,7 +831,7 @@ void SQLitePersistentCookieStore::Backend::MakeCookiesFromSQLStatement(
|
| static_cast<DBCookiePriority>(smt.ColumnInt(13))))); // priority
|
| DLOG_IF(WARNING, cc->CreationDate() > Time::Now())
|
| << L"CreationDate too recent";
|
| - cookies->push_back(cc.release());
|
| + cookies->push_back(std::move(cc));
|
| ++num_cookies_read_;
|
| }
|
| }
|
| @@ -1402,7 +1398,7 @@ void SQLitePersistentCookieStore::Load(const LoadedCallback& loaded_callback) {
|
| if (backend_)
|
| backend_->Load(loaded_callback);
|
| else
|
| - loaded_callback.Run(std::vector<CanonicalCookie*>());
|
| + loaded_callback.Run(std::vector<std::unique_ptr<CanonicalCookie>>());
|
| }
|
|
|
| void SQLitePersistentCookieStore::LoadCookiesForKey(
|
| @@ -1412,7 +1408,7 @@ void SQLitePersistentCookieStore::LoadCookiesForKey(
|
| if (backend_)
|
| backend_->LoadCookiesForKey(key, loaded_callback);
|
| else
|
| - loaded_callback.Run(std::vector<CanonicalCookie*>());
|
| + loaded_callback.Run(std::vector<std::unique_ptr<CanonicalCookie>>());
|
| }
|
|
|
| void SQLitePersistentCookieStore::AddCookie(const CanonicalCookie& cc) {
|
|
|