Index: components/sync_driver/shared_change_processor.cc |
diff --git a/components/sync_driver/shared_change_processor.cc b/components/sync_driver/shared_change_processor.cc |
index c1cf407e74647f25db86a9309fccb236b4bfeeb6..ce494303414c8cede1730a9eb0b7b7b7f8f32c8c 100644 |
--- a/components/sync_driver/shared_change_processor.cc |
+++ b/components/sync_driver/shared_change_processor.cc |
@@ -24,21 +24,20 @@ SharedChangeProcessor::SharedChangeProcessor() |
SharedChangeProcessor::~SharedChangeProcessor() { |
// We can either be deleted when the DTC is destroyed (on UI |
- // thread), or when the syncer::SyncableService stop's syncing (datatype |
+ // thread), or when the syncer::SyncableService stops syncing (datatype |
// thread). |generic_change_processor_|, if non-NULL, must be |
// deleted on |backend_loop_|. |
- if (frontend_loop_->BelongsToCurrentThread()) { |
- if (backend_loop_.get()) { |
+ if (backend_loop_.get()) { |
+ if (backend_loop_->BelongsToCurrentThread()) { |
+ delete generic_change_processor_; |
+ } else { |
+ DCHECK(frontend_loop_->BelongsToCurrentThread()); |
if (!backend_loop_->DeleteSoon(FROM_HERE, generic_change_processor_)) { |
NOTREACHED(); |
} |
- } else { |
- DCHECK(!generic_change_processor_); |
} |
} else { |
- DCHECK(backend_loop_.get()); |
- DCHECK(backend_loop_->BelongsToCurrentThread()); |
- delete generic_change_processor_; |
+ DCHECK(!generic_change_processor_); |
} |
} |