Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Side by Side Diff: components/syncable_prefs/pref_model_associator.cc

Issue 2318303002: Remove stl_util's STLDeleteContainerPairSecondPointers. (Closed)
Patch Set: fix Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/syncable_prefs/pref_model_associator.h" 5 #include "components/syncable_prefs/pref_model_associator.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
11 #include "base/json/json_string_value_serializer.h" 11 #include "base/json/json_string_value_serializer.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/stl_util.h"
16 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
17 #include "base/values.h" 16 #include "base/values.h"
18 #include "components/prefs/pref_service.h" 17 #include "components/prefs/pref_service.h"
19 #include "components/sync/api/sync_change.h" 18 #include "components/sync/api/sync_change.h"
20 #include "components/sync/api/sync_error_factory.h" 19 #include "components/sync/api/sync_error_factory.h"
21 #include "components/sync/protocol/preference_specifics.pb.h" 20 #include "components/sync/protocol/preference_specifics.pb.h"
22 #include "components/sync/protocol/sync.pb.h" 21 #include "components/sync/protocol/sync.pb.h"
23 #include "components/syncable_prefs/pref_model_associator_client.h" 22 #include "components/syncable_prefs/pref_model_associator_client.h"
24 #include "components/syncable_prefs/pref_service_syncable.h" 23 #include "components/syncable_prefs/pref_service_syncable.h"
25 24
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 type_(type), 62 type_(type),
64 client_(client) { 63 client_(client) {
65 DCHECK(CalledOnValidThread()); 64 DCHECK(CalledOnValidThread());
66 DCHECK(type_ == PREFERENCES || type_ == PRIORITY_PREFERENCES); 65 DCHECK(type_ == PREFERENCES || type_ == PRIORITY_PREFERENCES);
67 } 66 }
68 67
69 PrefModelAssociator::~PrefModelAssociator() { 68 PrefModelAssociator::~PrefModelAssociator() {
70 DCHECK(CalledOnValidThread()); 69 DCHECK(CalledOnValidThread());
71 pref_service_ = NULL; 70 pref_service_ = NULL;
72 71
73 base::STLDeleteContainerPairSecondPointers(synced_pref_observers_.begin(),
74 synced_pref_observers_.end());
75 synced_pref_observers_.clear(); 72 synced_pref_observers_.clear();
76 } 73 }
77 74
78 void PrefModelAssociator::InitPrefAndAssociate( 75 void PrefModelAssociator::InitPrefAndAssociate(
79 const syncer::SyncData& sync_pref, 76 const syncer::SyncData& sync_pref,
80 const std::string& pref_name, 77 const std::string& pref_name,
81 syncer::SyncChangeList* sync_changes) { 78 syncer::SyncChangeList* sync_changes) {
82 const base::Value* user_pref_value = pref_service_->GetUserPrefValue( 79 const base::Value* user_pref_value = pref_service_->GetUserPrefValue(
83 pref_name.c_str()); 80 pref_name.c_str());
84 VLOG(1) << "Associating preference " << pref_name; 81 VLOG(1) << "Associating preference " << pref_name;
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 } 432 }
436 return value.release(); 433 return value.release();
437 } 434 }
438 435
439 bool PrefModelAssociator::IsPrefSynced(const std::string& name) const { 436 bool PrefModelAssociator::IsPrefSynced(const std::string& name) const {
440 return synced_preferences_.find(name) != synced_preferences_.end(); 437 return synced_preferences_.find(name) != synced_preferences_.end();
441 } 438 }
442 439
443 void PrefModelAssociator::AddSyncedPrefObserver(const std::string& name, 440 void PrefModelAssociator::AddSyncedPrefObserver(const std::string& name,
444 SyncedPrefObserver* observer) { 441 SyncedPrefObserver* observer) {
445 SyncedPrefObserverList* observers = synced_pref_observers_[name]; 442 std::unique_ptr<SyncedPrefObserverList>& observers =
446 if (observers == NULL) { 443 synced_pref_observers_[name];
447 observers = new SyncedPrefObserverList; 444 if (!observers)
448 synced_pref_observers_[name] = observers; 445 observers = base::MakeUnique<SyncedPrefObserverList>();
449 } 446
450 observers->AddObserver(observer); 447 observers->AddObserver(observer);
451 } 448 }
452 449
453 void PrefModelAssociator::RemoveSyncedPrefObserver(const std::string& name, 450 void PrefModelAssociator::RemoveSyncedPrefObserver(const std::string& name,
454 SyncedPrefObserver* observer) { 451 SyncedPrefObserver* observer) {
455 SyncedPrefObserverMap::iterator observer_iter = 452 auto observer_iter = synced_pref_observers_.find(name);
456 synced_pref_observers_.find(name);
457 if (observer_iter == synced_pref_observers_.end()) 453 if (observer_iter == synced_pref_observers_.end())
458 return; 454 return;
459 SyncedPrefObserverList* observers = observer_iter->second; 455 SyncedPrefObserverList* observers = observer_iter->second.get();
460 observers->RemoveObserver(observer); 456 observers->RemoveObserver(observer);
461 } 457 }
462 458
463 void PrefModelAssociator::SetPrefModelAssociatorClientForTesting( 459 void PrefModelAssociator::SetPrefModelAssociatorClientForTesting(
464 const PrefModelAssociatorClient* client) { 460 const PrefModelAssociatorClient* client) {
465 DCHECK(!client_); 461 DCHECK(!client_);
466 client_ = client; 462 client_ = client;
467 } 463 }
468 464
469 std::set<std::string> PrefModelAssociator::registered_preferences() const { 465 std::set<std::string> PrefModelAssociator::registered_preferences() const {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 sync_processor_->ProcessSyncChanges(FROM_HERE, changes); 527 sync_processor_->ProcessSyncChanges(FROM_HERE, changes);
532 } 528 }
533 529
534 void PrefModelAssociator::SetPrefService(PrefServiceSyncable* pref_service) { 530 void PrefModelAssociator::SetPrefService(PrefServiceSyncable* pref_service) {
535 DCHECK(pref_service_ == NULL); 531 DCHECK(pref_service_ == NULL);
536 pref_service_ = pref_service; 532 pref_service_ = pref_service;
537 } 533 }
538 534
539 void PrefModelAssociator::NotifySyncedPrefObservers(const std::string& path, 535 void PrefModelAssociator::NotifySyncedPrefObservers(const std::string& path,
540 bool from_sync) const { 536 bool from_sync) const {
541 SyncedPrefObserverMap::const_iterator observer_iter = 537 auto observer_iter = synced_pref_observers_.find(path);
542 synced_pref_observers_.find(path);
543 if (observer_iter == synced_pref_observers_.end()) 538 if (observer_iter == synced_pref_observers_.end())
544 return; 539 return;
545 SyncedPrefObserverList* observers = observer_iter->second; 540 SyncedPrefObserverList* observers = observer_iter->second.get();
546 FOR_EACH_OBSERVER(SyncedPrefObserver, *observers, 541 FOR_EACH_OBSERVER(SyncedPrefObserver, *observers,
547 OnSyncedPrefChanged(path, from_sync)); 542 OnSyncedPrefChanged(path, from_sync));
548 } 543 }
549 544
550 } // namespace syncable_prefs 545 } // namespace syncable_prefs
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698