| Index: content/browser/indexed_db/indexed_db_backing_store.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc
|
| index 56543bf966aeb1ce14bb64b316c16d43c00a959d..c0d44908309fca7130529fe4f558f37088955509 100644
|
| --- a/content/browser/indexed_db/indexed_db_backing_store.cc
|
| +++ b/content/browser/indexed_db/indexed_db_backing_store.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/json/json_writer.h"
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| @@ -770,8 +771,7 @@ IndexedDBBackingStore::~IndexedDBBackingStore() {
|
| for (const auto& pid : child_process_ids_granted_)
|
| policy->RevokeAllPermissionsForFile(pid, blob_path_);
|
| }
|
| - base::STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(),
|
| - incognito_blob_map_.end());
|
| + incognito_blob_map_.clear();
|
| // db_'s destructor uses comparator_. The order of destruction is important.
|
| db_.reset();
|
| comparator_.reset();
|
| @@ -2707,11 +2707,11 @@ leveldb::Status IndexedDBBackingStore::Transaction::GetBlobInfoForRecord(
|
| BlobChangeRecord* change_record = NULL;
|
| auto blob_iter = blob_change_map_.find(object_store_data_key);
|
| if (blob_iter != blob_change_map_.end()) {
|
| - change_record = blob_iter->second;
|
| + change_record = blob_iter->second.get();
|
| } else {
|
| blob_iter = incognito_blob_map_.find(object_store_data_key);
|
| if (blob_iter != incognito_blob_map_.end())
|
| - change_record = blob_iter->second;
|
| + change_record = blob_iter->second.get();
|
| }
|
| if (change_record) {
|
| // Either we haven't written the blob to disk yet or we're in incognito
|
| @@ -4006,10 +4006,8 @@ IndexedDBBackingStore::Transaction::Transaction(
|
| }
|
|
|
| IndexedDBBackingStore::Transaction::~Transaction() {
|
| - base::STLDeleteContainerPairSecondPointers(blob_change_map_.begin(),
|
| - blob_change_map_.end());
|
| - base::STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(),
|
| - incognito_blob_map_.end());
|
| + blob_change_map_.clear();
|
| + incognito_blob_map_.clear();
|
| DCHECK(!committing_);
|
| }
|
|
|
| @@ -4022,7 +4020,7 @@ void IndexedDBBackingStore::Transaction::Begin() {
|
| // If incognito, this snapshots blobs just as the above transaction_
|
| // constructor snapshots the leveldb.
|
| for (const auto& iter : backing_store_->incognito_blob_map_)
|
| - incognito_blob_map_[iter.first] = iter.second->Clone().release();
|
| + incognito_blob_map_[iter.first] = iter.second->Clone();
|
| }
|
|
|
| static GURL GetURLFromUUID(const string& uuid) {
|
| @@ -4247,12 +4245,10 @@ leveldb::Status IndexedDBBackingStore::Transaction::CommitPhaseTwo() {
|
| for (auto& iter : blob_change_map_) {
|
| auto target_record = target_map.find(iter.first);
|
| if (target_record != target_map.end()) {
|
| - delete target_record->second;
|
| target_map.erase(target_record);
|
| }
|
| if (iter.second) {
|
| - target_map[iter.first] = iter.second;
|
| - iter.second = NULL;
|
| + target_map[iter.first] = std::move(iter.second);
|
| }
|
| }
|
| }
|
| @@ -4432,9 +4428,9 @@ void IndexedDBBackingStore::Transaction::PutBlobInfo(
|
| BlobChangeRecord* record = NULL;
|
| if (it == blob_change_map_.end()) {
|
| record = new BlobChangeRecord(object_store_data_key, object_store_id);
|
| - blob_change_map_[object_store_data_key] = record;
|
| + blob_change_map_[object_store_data_key] = base::WrapUnique(record);
|
| } else {
|
| - record = it->second;
|
| + record = it->second.get();
|
| }
|
| DCHECK_EQ(record->object_store_id(), object_store_id);
|
| record->SetBlobInfo(blob_info);
|
|
|