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; |