| Index: storage/browser/quota/storage_monitor.cc
|
| diff --git a/storage/browser/quota/storage_monitor.cc b/storage/browser/quota/storage_monitor.cc
|
| index 87c982e04b629305507f8b4f15844271003ef0f9..eafa5a6e7f797a800f363f5d2e2d68902336f872 100644
|
| --- a/storage/browser/quota/storage_monitor.cc
|
| +++ b/storage/browser/quota/storage_monitor.cc
|
| @@ -8,7 +8,7 @@
|
|
|
| #include <algorithm>
|
|
|
| -#include "base/stl_util.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "net/base/url_util.h"
|
| #include "storage/browser/quota/quota_manager.h"
|
| @@ -247,7 +247,6 @@ StorageTypeObservers::StorageTypeObservers(QuotaManager* quota_manager)
|
| }
|
|
|
| StorageTypeObservers::~StorageTypeObservers() {
|
| - base::STLDeleteValues(&host_observers_map_);
|
| }
|
|
|
| void StorageTypeObservers::AddObserver(
|
| @@ -256,25 +255,22 @@ void StorageTypeObservers::AddObserver(
|
| if (host.empty())
|
| return;
|
|
|
| - HostStorageObservers* host_observers = NULL;
|
| - HostObserversMap::iterator it = host_observers_map_.find(host);
|
| - if (it == host_observers_map_.end()) {
|
| - host_observers = new HostStorageObservers(quota_manager_);
|
| - host_observers_map_[host] = host_observers;
|
| - } else {
|
| - host_observers = it->second;
|
| + auto& host_observers = host_observers_map_[host];
|
| + if (!host_observers) {
|
| + // Because there are no null entries in host_observers_map_, the [] inserted
|
| + // a blank pointer, so let's populate it.
|
| + host_observers = base::MakeUnique<HostStorageObservers>(quota_manager_);
|
| }
|
|
|
| host_observers->AddObserver(observer, params);
|
| }
|
|
|
| void StorageTypeObservers::RemoveObserver(StorageObserver* observer) {
|
| - for (HostObserversMap::iterator it = host_observers_map_.begin();
|
| - it != host_observers_map_.end(); ) {
|
| + for (auto it = host_observers_map_.begin();
|
| + it != host_observers_map_.end();) {
|
| it->second->RemoveObserver(observer);
|
| if (!it->second->ContainsObservers()) {
|
| - delete it->second;
|
| - host_observers_map_.erase(it++);
|
| + it = host_observers_map_.erase(it);
|
| } else {
|
| ++it;
|
| }
|
| @@ -284,31 +280,29 @@ void StorageTypeObservers::RemoveObserver(StorageObserver* observer) {
|
| void StorageTypeObservers::RemoveObserverForFilter(
|
| StorageObserver* observer, const StorageObserver::Filter& filter) {
|
| std::string host = net::GetHostOrSpecFromURL(filter.origin);
|
| - HostObserversMap::iterator it = host_observers_map_.find(host);
|
| + auto it = host_observers_map_.find(host);
|
| if (it == host_observers_map_.end())
|
| return;
|
|
|
| it->second->RemoveObserver(observer);
|
| - if (!it->second->ContainsObservers()) {
|
| - delete it->second;
|
| + if (!it->second->ContainsObservers())
|
| host_observers_map_.erase(it);
|
| - }
|
| }
|
|
|
| const HostStorageObservers* StorageTypeObservers::GetHostObservers(
|
| const std::string& host) const {
|
| - HostObserversMap::const_iterator it = host_observers_map_.find(host);
|
| + auto it = host_observers_map_.find(host);
|
| if (it != host_observers_map_.end())
|
| - return it->second;
|
| + return it->second.get();
|
|
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| void StorageTypeObservers::NotifyUsageChange(
|
| const StorageObserver::Filter& filter,
|
| int64_t delta) {
|
| std::string host = net::GetHostOrSpecFromURL(filter.origin);
|
| - HostObserversMap::iterator it = host_observers_map_.find(host);
|
| + auto it = host_observers_map_.find(host);
|
| if (it == host_observers_map_.end())
|
| return;
|
|
|
| @@ -323,7 +317,6 @@ StorageMonitor::StorageMonitor(QuotaManager* quota_manager)
|
| }
|
|
|
| StorageMonitor::~StorageMonitor() {
|
| - base::STLDeleteValues(&storage_type_observers_map_);
|
| }
|
|
|
| void StorageMonitor::AddObserver(
|
| @@ -338,22 +331,16 @@ void StorageMonitor::AddObserver(
|
| return;
|
| }
|
|
|
| - StorageTypeObservers* type_observers = NULL;
|
| - StorageTypeObserversMap::iterator it =
|
| - storage_type_observers_map_.find(params.filter.storage_type);
|
| - if (it == storage_type_observers_map_.end()) {
|
| - type_observers = new StorageTypeObservers(quota_manager_);
|
| - storage_type_observers_map_[params.filter.storage_type] = type_observers;
|
| - } else {
|
| - type_observers = it->second;
|
| - }
|
| + auto& type_observers =
|
| + storage_type_observers_map_[params.filter.storage_type];
|
| + if (!type_observers)
|
| + type_observers = base::MakeUnique<StorageTypeObservers>(quota_manager_);
|
|
|
| type_observers->AddObserver(observer, params);
|
| }
|
|
|
| void StorageMonitor::RemoveObserver(StorageObserver* observer) {
|
| - for (StorageTypeObserversMap::iterator it =
|
| - storage_type_observers_map_.begin();
|
| + for (auto it = storage_type_observers_map_.begin();
|
| it != storage_type_observers_map_.end(); ++it) {
|
| it->second->RemoveObserver(observer);
|
| }
|
| @@ -361,8 +348,7 @@ void StorageMonitor::RemoveObserver(StorageObserver* observer) {
|
|
|
| void StorageMonitor::RemoveObserverForFilter(
|
| StorageObserver* observer, const StorageObserver::Filter& filter) {
|
| - StorageTypeObserversMap::iterator it =
|
| - storage_type_observers_map_.find(filter.storage_type);
|
| + auto it = storage_type_observers_map_.find(filter.storage_type);
|
| if (it == storage_type_observers_map_.end())
|
| return;
|
|
|
| @@ -371,12 +357,11 @@ void StorageMonitor::RemoveObserverForFilter(
|
|
|
| const StorageTypeObservers* StorageMonitor::GetStorageTypeObservers(
|
| StorageType storage_type) const {
|
| - StorageTypeObserversMap::const_iterator it =
|
| - storage_type_observers_map_.find(storage_type);
|
| + auto it = storage_type_observers_map_.find(storage_type);
|
| if (it != storage_type_observers_map_.end())
|
| - return it->second;
|
| + return it->second.get();
|
|
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| void StorageMonitor::NotifyUsageChange(const StorageObserver::Filter& filter,
|
| @@ -389,8 +374,7 @@ void StorageMonitor::NotifyUsageChange(const StorageObserver::Filter& filter,
|
| return;
|
| }
|
|
|
| - StorageTypeObserversMap::iterator it =
|
| - storage_type_observers_map_.find(filter.storage_type);
|
| + auto it = storage_type_observers_map_.find(filter.storage_type);
|
| if (it == storage_type_observers_map_.end())
|
| return;
|
|
|
|
|