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