Index: chrome/browser/sync/glue/syncable_service_adapter.cc |
diff --git a/chrome/browser/sync/glue/syncable_service_adapter.cc b/chrome/browser/sync/glue/syncable_service_adapter.cc |
index 68dcfae9b0f69880a1cbb7259a0f2de7cb5f56d2..88b6ab1f753903e1b5454c101bf3efa68cdda58c 100644 |
--- a/chrome/browser/sync/glue/syncable_service_adapter.cc |
+++ b/chrome/browser/sync/glue/syncable_service_adapter.cc |
@@ -30,18 +30,26 @@ SyncableServiceAdapter::~SyncableServiceAdapter() { |
} |
} |
-bool SyncableServiceAdapter::AssociateModels() { |
+bool SyncableServiceAdapter::AssociateModels(SyncError* error) { |
syncing_ = true; |
SyncDataList initial_sync_data; |
- if (!sync_processor_->GetSyncDataForType(type_, &initial_sync_data)) { |
+ SyncError temp_error = |
+ sync_processor_->GetSyncDataForType(type_, &initial_sync_data); |
+ if (temp_error.IsSet()) { |
+ *error = temp_error; |
return false; |
} |
- return service_->MergeDataAndStartSyncing(type_, |
- initial_sync_data, |
- sync_processor_); |
+ temp_error = service_->MergeDataAndStartSyncing(type_, |
+ initial_sync_data, |
+ sync_processor_); |
+ if (temp_error.IsSet()) { |
+ *error = temp_error; |
+ return false; |
+ } |
+ return true; |
} |
-bool SyncableServiceAdapter::DisassociateModels() { |
+bool SyncableServiceAdapter::DisassociateModels(SyncError* error) { |
service_->StopSyncing(type_); |
syncing_ = false; |
return true; |