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

Unified Diff: sync/internal_api/sync_rollback_manager.cc

Issue 363543002: Properly handle initialization failure and following manager shutdown without (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: sync/internal_api/sync_rollback_manager.cc
diff --git a/sync/internal_api/sync_rollback_manager.cc b/sync/internal_api/sync_rollback_manager.cc
index 84367b082b05de7e085b09c50c696c68d4935966..967e1ecc76577f65129d710762dc5f83cec6589a 100644
--- a/sync/internal_api/sync_rollback_manager.cc
+++ b/sync/internal_api/sync_rollback_manager.cc
@@ -53,16 +53,18 @@ void SyncRollbackManager::Init(
report_unrecoverable_error_function,
cancelation_signal);
- change_delegate_ = change_delegate;
+ if (initialized()) {
+ change_delegate_ = change_delegate;
- for (size_t i = 0; i < workers.size(); ++i) {
- ModelSafeGroup group = workers[i]->GetModelSafeGroup();
- CHECK(workers_.find(group) == workers_.end());
- workers_[group] = workers[i];
- }
+ for (size_t i = 0; i < workers.size(); ++i) {
+ ModelSafeGroup group = workers[i]->GetModelSafeGroup();
+ CHECK(workers_.find(group) == workers_.end());
+ workers_[group] = workers[i];
+ }
- rollback_ready_types_ = GetUserShare()->directory->InitialSyncEndedTypes();
- rollback_ready_types_.RetainAll(BackupTypes());
+ rollback_ready_types_ = GetUserShare()->directory->InitialSyncEndedTypes();
+ rollback_ready_types_.RetainAll(BackupTypes());
+ }
}
void SyncRollbackManager::StartSyncingNormally(

Powered by Google App Engine
This is Rietveld 408576698