Index: chrome/browser/sync/glue/data_type_manager_impl.cc |
diff --git a/chrome/browser/sync/glue/data_type_manager_impl.cc b/chrome/browser/sync/glue/data_type_manager_impl.cc |
index 1c2d533e3299bff84a30e435d54d6f87a8f77f6e..5d5fd5099d95148211060a7caa3987ef15f3edf8 100644 |
--- a/chrome/browser/sync/glue/data_type_manager_impl.cc |
+++ b/chrome/browser/sync/glue/data_type_manager_impl.cc |
@@ -98,9 +98,10 @@ bool DataTypeManagerImpl::GetControllersNeedingStart( |
// Add any data type controllers into the needs_start_ list that are |
// currently NOT_RUNNING or STOPPING. |
bool found_any = false; |
- for (TypeSet::const_iterator it = last_requested_types_.begin(); |
- it != last_requested_types_.end(); ++it) { |
- DataTypeController::TypeMap::const_iterator dtc = controllers_->find(*it); |
+ for (TypeSet::Iterator it = last_requested_types_.First(); |
+ it.Good(); it.Inc()) { |
+ DataTypeController::TypeMap::const_iterator dtc = |
+ controllers_->find(it.Get()); |
if (dtc != controllers_->end() && |
(dtc->second->state() == DataTypeController::NOT_RUNNING || |
dtc->second->state() == DataTypeController::STOPPING)) { |
@@ -116,17 +117,17 @@ bool DataTypeManagerImpl::GetControllersNeedingStart( |
return found_any; |
} |
-void DataTypeManagerImpl::Configure(const TypeSet& desired_types, |
+void DataTypeManagerImpl::Configure(TypeSet desired_types, |
sync_api::ConfigureReason reason) { |
ConfigureImpl(desired_types, reason, true); |
} |
-void DataTypeManagerImpl::ConfigureWithoutNigori(const TypeSet& desired_types, |
+void DataTypeManagerImpl::ConfigureWithoutNigori(TypeSet desired_types, |
sync_api::ConfigureReason reason) { |
ConfigureImpl(desired_types, reason, false); |
} |
-void DataTypeManagerImpl::ConfigureImpl(const TypeSet& desired_types, |
+void DataTypeManagerImpl::ConfigureImpl(TypeSet desired_types, |
sync_api::ConfigureReason reason, |
bool enable_nigori) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -137,7 +138,7 @@ void DataTypeManagerImpl::ConfigureImpl(const TypeSet& desired_types, |
} |
if (state_ == CONFIGURED && |
- last_requested_types_ == desired_types && |
+ last_requested_types_.Equals(desired_types) && |
reason == sync_api::CONFIGURE_REASON_RECONFIGURATION) { |
// If we're already configured and the types haven't changed, we can exit |
// out early. |
@@ -171,7 +172,7 @@ void DataTypeManagerImpl::ConfigureImpl(const TypeSet& desired_types, |
for (DataTypeController::TypeMap::const_iterator it = controllers_->begin(); |
it != controllers_->end(); ++it) { |
DataTypeController* dtc = (*it).second; |
- if (desired_types.count(dtc->type()) == 0 && ( |
+ if (!desired_types.Has(dtc->type()) && ( |
dtc->state() == DataTypeController::MODEL_STARTING || |
dtc->state() == DataTypeController::ASSOCIATING || |
dtc->state() == DataTypeController::RUNNING || |
@@ -216,22 +217,17 @@ void DataTypeManagerImpl::Restart(sync_api::ConfigureReason reason, |
// The task will be invoked when updates are downloaded. |
state_ = DOWNLOAD_PENDING; |
// Hopefully http://crbug.com/79970 will make this less verbose. |
- syncable::ModelTypeSet all_types; |
- const syncable::ModelTypeSet& types_to_add = last_requested_types_; |
- syncable::ModelTypeSet types_to_remove; |
+ syncable::ModelEnumSet all_types; |
for (DataTypeController::TypeMap::const_iterator it = |
controllers_->begin(); it != controllers_->end(); ++it) { |
- all_types.insert(it->first); |
+ all_types.Put(it->first); |
} |
+ const syncable::ModelEnumSet types_to_add = last_requested_types_; |
// Check that types_to_add \subseteq all_types. |
- DCHECK(std::includes(all_types.begin(), all_types.end(), |
- types_to_add.begin(), types_to_add.end())); |
+ DCHECK(all_types.HasAll(types_to_add)); |
// Set types_to_remove to all_types \setminus types_to_add. |
- ignore_result( |
- std::set_difference( |
- all_types.begin(), all_types.end(), |
- types_to_add.begin(), types_to_add.end(), |
- std::inserter(types_to_remove, types_to_remove.end()))); |
+ const syncable::ModelEnumSet types_to_remove = |
+ Difference(all_types, types_to_add); |
backend_->ConfigureDataTypes( |
types_to_add, |
types_to_remove, |