| Index: mojo/application/public/cpp/lib/application_impl.cc
|
| diff --git a/mojo/application/public/cpp/lib/application_impl.cc b/mojo/application/public/cpp/lib/application_impl.cc
|
| index 7de757f0ce6b1690e55fb603af3d71b0c49f1ff8..bafabe276fbc04eb61da9300ebc3412fbd1577e8 100644
|
| --- a/mojo/application/public/cpp/lib/application_impl.cc
|
| +++ b/mojo/application/public/cpp/lib/application_impl.cc
|
| @@ -35,7 +35,8 @@ ApplicationImpl::ApplicationImpl(ApplicationDelegate* delegate,
|
| binding_(this, request.Pass()),
|
| termination_closure_(termination_closure),
|
| app_lifetime_helper_(this),
|
| - quit_requested_(false) {
|
| + quit_requested_(false),
|
| + weak_factory_(this) {
|
| }
|
|
|
| void ApplicationImpl::ClearConnections() {
|
| @@ -140,7 +141,10 @@ void ApplicationImpl::OnQuitRequested(const Callback<void(bool)>& callback) {
|
| }
|
|
|
| void ApplicationImpl::OnConnectionError() {
|
| + base::WeakPtr<ApplicationImpl> ptr(weak_factory_.GetWeakPtr());
|
| QuitNow();
|
| + if (!ptr)
|
| + return;
|
| shell_ = nullptr;
|
| }
|
|
|
|
|