Index: sync/internal_api/sync_manager_impl.cc |
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc |
index e12ec8f7c236ca49a40fcbcb601500b191550517..5f2c3de5618460f26e8750338a0c5090fb6daa07 100644 |
--- a/sync/internal_api/sync_manager_impl.cc |
+++ b/sync/internal_api/sync_manager_impl.cc |
@@ -388,6 +388,7 @@ void SyncManagerImpl::Init(InitArgs* args) { |
model_type_registry_.reset( |
new ModelTypeRegistry(args->workers, directory(), this)); |
+ sync_encryption_handler_->AddObserver(model_type_registry_.get()); |
// Bind the SyncContext WeakPtr to this thread. This helps us crash earlier |
// if the pointer is misused in debug mode. |
@@ -608,6 +609,10 @@ void SyncManagerImpl::ShutdownOnSyncThread(ShutdownReason reason) { |
scheduler_.reset(); |
session_context_.reset(); |
+ |
+ if (model_type_registry_) |
+ sync_encryption_handler_->RemoveObserver(model_type_registry_.get()); |
+ |
model_type_registry_.reset(); |
if (sync_encryption_handler_) { |