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

Unified Diff: sync/internal_api/sync_rollback_manager_base.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
« no previous file with comments | « sync/internal_api/sync_rollback_manager_base.h ('k') | sync/internal_api/sync_rollback_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/internal_api/sync_rollback_manager_base.cc
diff --git a/sync/internal_api/sync_rollback_manager_base.cc b/sync/internal_api/sync_rollback_manager_base.cc
index 6f0e5340f1d4e37d68d73ff63a1912bb4b3f630b..28afb8b54d06009f2d2848188ea3f11e468f85aa 100644
--- a/sync/internal_api/sync_rollback_manager_base.cc
+++ b/sync/internal_api/sync_rollback_manager_base.cc
@@ -43,7 +43,8 @@ namespace syncer {
SyncRollbackManagerBase::SyncRollbackManagerBase()
: report_unrecoverable_error_function_(NULL),
weak_ptr_factory_(this),
- dummy_handler_(new DummyEntryptionHandler) {
+ dummy_handler_(new DummyEntryptionHandler),
+ initialized_(false) {
}
SyncRollbackManagerBase::~SyncRollbackManagerBase() {
@@ -77,6 +78,7 @@ void SyncRollbackManagerBase::Init(
return;
}
+ initialized_ = true;
NotifyInitializationSuccess();
}
@@ -151,10 +153,11 @@ void SyncRollbackManagerBase::SaveChanges() {
}
void SyncRollbackManagerBase::ShutdownOnSyncThread() {
- if (share_.directory) {
+ if (initialized_) {
SaveChanges();
share_.directory->Close();
share_.directory.reset();
+ initialized_ = false;
}
}
« no previous file with comments | « sync/internal_api/sync_rollback_manager_base.h ('k') | sync/internal_api/sync_rollback_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698