Index: mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc |
diff --git a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc |
index 4dfcd556677f5970828b66d1daaab82f09a85cf1..d45fab8f5bab4f18c954a71458a25943e15e449d 100644 |
--- a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc |
+++ b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc |
@@ -97,6 +97,7 @@ class RootObserver : public NodeObserver { |
DCHECK_EQ(node, root_); |
static_cast<ViewManagerClientImpl*>( |
NodePrivate(root_).view_manager())->RemoveRoot(root_); |
+ node->RemoveObserver(this); |
delete this; |
} |
@@ -535,6 +536,7 @@ ViewManagerClientImpl::ViewManagerClientImpl(ApplicationConnection* connection, |
dispatcher_(NULL) {} |
ViewManagerClientImpl::~ViewManagerClientImpl() { |
+ delegate_->OnViewManagerDisconnected(this); |
while (!nodes_.empty()) { |
IdToNodeMap::iterator it = nodes_.begin(); |
if (OwnsNode(it->second->id())) |