Chromium Code Reviews| Index: mojo/services/window_manager/window_manager_app.cc |
| diff --git a/mojo/services/window_manager/window_manager_app.cc b/mojo/services/window_manager/window_manager_app.cc |
| index bc6ca00042dbf24d22241ec278aba3f51cfd8fbe..2ba436a291a4bb42f41e83d83b71e734b79d6add 100644 |
| --- a/mojo/services/window_manager/window_manager_app.cc |
| +++ b/mojo/services/window_manager/window_manager_app.cc |
| @@ -90,7 +90,13 @@ class WindowManagerApp::WindowManagerInternalImpl |
| ScopedMessagePipeHandle window_manager_pipe) override { |
| // |wm_internal| is tied to the life of the pipe. |
| WindowManagerImpl* wm = new WindowManagerImpl(app_, true); |
| - BindToPipe(wm, window_manager_pipe.Pass()); |
| + WeakBindToPipe(wm, window_manager_pipe.Pass()); |
| + } |
| + |
| + // InterfaceImpl: |
| + void OnConnectionError() override { |
| + // Necessary since we used WeakBindToPipe and are not automatically deleted. |
|
jamesr
2014/11/05 19:02:24
then why weakly bind? the definition of strong bin
|
| + delete this; |
| } |
| private: |
| @@ -122,7 +128,9 @@ WindowManagerApp::WindowManagerApp( |
| dummy_delegate_(new DummyDelegate) { |
| } |
| -WindowManagerApp::~WindowManagerApp() {} |
| +WindowManagerApp::~WindowManagerApp() { |
| + STLDeleteElements(&connections_); |
| +} |
| // static |
| View* WindowManagerApp::GetViewForWindow(aura::Window* window) { |