Index: chrome/browser/webdata/autofill_profile_syncable_service.cc |
diff --git a/chrome/browser/webdata/autofill_profile_syncable_service.cc b/chrome/browser/webdata/autofill_profile_syncable_service.cc |
index 8dfe601835af5a1ebc8b013586b140fcc3a19a2e..0fb01084bf947e885fdb2fd4c131fe31f238cea7 100644 |
--- a/chrome/browser/webdata/autofill_profile_syncable_service.cc |
+++ b/chrome/browser/webdata/autofill_profile_syncable_service.cc |
@@ -40,8 +40,7 @@ const char kAutofillProfileTag[] = "google_chrome_autofill_profiles"; |
AutofillProfileSyncableService::AutofillProfileSyncableService( |
WebDataService* web_data_service) |
- : web_data_service_(web_data_service), |
- sync_processor_(NULL) { |
+ : web_data_service_(web_data_service) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
DCHECK(web_data_service_); |
notification_registrar_.Add(this, |
@@ -54,8 +53,7 @@ AutofillProfileSyncableService::~AutofillProfileSyncableService() { |
} |
AutofillProfileSyncableService::AutofillProfileSyncableService() |
- : web_data_service_(NULL), |
- sync_processor_(NULL) { |
+ : web_data_service_(NULL) { |
} |
SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing( |
@@ -63,7 +61,7 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing( |
const SyncDataList& initial_sync_data, |
SyncChangeProcessor* sync_processor) { |
DCHECK(CalledOnValidThread()); |
- DCHECK(sync_processor_ == NULL); |
+ DCHECK(!sync_processor_.get()); |
VLOG(1) << "Associating Autofill: MergeDataAndStartSyncing"; |
if (!LoadAutofillData(&profiles_.get())) { |
@@ -86,7 +84,7 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing( |
} |
} |
- sync_processor_ = sync_processor; |
+ sync_processor_.reset(sync_processor); |
GUIDToProfileMap remaining_profiles; |
CreateGUIDToProfileMap(profiles_.get(), &remaining_profiles); |
@@ -113,7 +111,9 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing( |
profiles_map_[i->first] = i->second; |
} |
- SyncError error = sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes); |
+ SyncError error; |
+ if (!new_changes.empty()) |
+ error = sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes); |
WebDataService::NotifyOfMultipleAutofillChanges(web_data_service_); |
@@ -122,10 +122,9 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing( |
void AutofillProfileSyncableService::StopSyncing(syncable::ModelType type) { |
DCHECK(CalledOnValidThread()); |
- DCHECK(sync_processor_ != NULL); |
DCHECK_EQ(type, syncable::AUTOFILL_PROFILE); |
- sync_processor_ = NULL; |
+ sync_processor_.reset(); |
profiles_.reset(); |
profiles_map_.clear(); |
} |
@@ -133,7 +132,7 @@ void AutofillProfileSyncableService::StopSyncing(syncable::ModelType type) { |
SyncDataList AutofillProfileSyncableService::GetAllSyncData( |
syncable::ModelType type) const { |
DCHECK(CalledOnValidThread()); |
- DCHECK(sync_processor_ != NULL); |
+ DCHECK(sync_processor_.get()); |
DCHECK_EQ(type, syncable::AUTOFILL_PROFILE); |
SyncDataList current_data; |
@@ -149,8 +148,7 @@ SyncError AutofillProfileSyncableService::ProcessSyncChanges( |
const tracked_objects::Location& from_here, |
const SyncChangeList& change_list) { |
DCHECK(CalledOnValidThread()); |
- DCHECK(sync_processor_ != NULL); |
- if (sync_processor_ == NULL) { |
+ if (!sync_processor_.get()) { |
SyncError error(FROM_HERE, "Models not yet associated.", |
syncable::AUTOFILL_PROFILE); |
return error; |
@@ -197,7 +195,7 @@ void AutofillProfileSyncableService::Observe(int type, |
// up we are going to process all when MergeData..() is called. If we receive |
// notification after the sync exited, it will be sinced next time Chrome |
// starts. |
- if (!sync_processor_) |
+ if (!sync_processor_.get()) |
return; |
AutofillProfileChange* change = Details<AutofillProfileChange>(details).ptr(); |
@@ -352,7 +350,7 @@ void AutofillProfileSyncableService::ActOnChange( |
DCHECK((change.type() == AutofillProfileChange::REMOVE && |
!change.profile()) || |
(change.type() != AutofillProfileChange::REMOVE && change.profile())); |
- DCHECK(sync_processor_); |
+ DCHECK(sync_processor_.get()); |
SyncChangeList new_changes; |
DataBundle bundle; |
switch (change.type()) { |