Index: components/syncable_prefs/pref_model_associator.cc |
diff --git a/components/syncable_prefs/pref_model_associator.cc b/components/syncable_prefs/pref_model_associator.cc |
index c43679f3921b21729779aed0a94e9703223efd6c..a2758de670f2589dd33cf51e5a80d8df4074a4a4 100644 |
--- a/components/syncable_prefs/pref_model_associator.cc |
+++ b/components/syncable_prefs/pref_model_associator.cc |
@@ -12,7 +12,6 @@ |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
-#include "base/stl_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
#include "components/prefs/pref_service.h" |
@@ -70,8 +69,6 @@ PrefModelAssociator::~PrefModelAssociator() { |
DCHECK(CalledOnValidThread()); |
pref_service_ = NULL; |
- base::STLDeleteContainerPairSecondPointers(synced_pref_observers_.begin(), |
- synced_pref_observers_.end()); |
synced_pref_observers_.clear(); |
} |
@@ -442,21 +439,20 @@ bool PrefModelAssociator::IsPrefSynced(const std::string& name) const { |
void PrefModelAssociator::AddSyncedPrefObserver(const std::string& name, |
SyncedPrefObserver* observer) { |
- SyncedPrefObserverList* observers = synced_pref_observers_[name]; |
- if (observers == NULL) { |
- observers = new SyncedPrefObserverList; |
- synced_pref_observers_[name] = observers; |
- } |
+ std::unique_ptr<SyncedPrefObserverList>& observers = |
+ synced_pref_observers_[name]; |
+ if (!observers) |
+ observers = base::MakeUnique<SyncedPrefObserverList>(); |
+ |
observers->AddObserver(observer); |
} |
void PrefModelAssociator::RemoveSyncedPrefObserver(const std::string& name, |
SyncedPrefObserver* observer) { |
- SyncedPrefObserverMap::iterator observer_iter = |
- synced_pref_observers_.find(name); |
+ auto observer_iter = synced_pref_observers_.find(name); |
if (observer_iter == synced_pref_observers_.end()) |
return; |
- SyncedPrefObserverList* observers = observer_iter->second; |
+ SyncedPrefObserverList* observers = observer_iter->second.get(); |
observers->RemoveObserver(observer); |
} |
@@ -538,11 +534,10 @@ void PrefModelAssociator::SetPrefService(PrefServiceSyncable* pref_service) { |
void PrefModelAssociator::NotifySyncedPrefObservers(const std::string& path, |
bool from_sync) const { |
- SyncedPrefObserverMap::const_iterator observer_iter = |
- synced_pref_observers_.find(path); |
+ auto observer_iter = synced_pref_observers_.find(path); |
if (observer_iter == synced_pref_observers_.end()) |
return; |
- SyncedPrefObserverList* observers = observer_iter->second; |
+ SyncedPrefObserverList* observers = observer_iter->second.get(); |
FOR_EACH_OBSERVER(SyncedPrefObserver, *observers, |
OnSyncedPrefChanged(path, from_sync)); |
} |