Index: mojo/public/cpp/application/lib/application_runner.cc |
diff --git a/mojo/public/cpp/application/lib/application_runner.cc b/mojo/public/cpp/application/lib/application_runner.cc |
index 214d09f64564b3d362f8587a82840fedc338705b..3654715f92385c3884b7cc8fb7dedbe8ed066a7d 100644 |
--- a/mojo/public/cpp/application/lib/application_runner.cc |
+++ b/mojo/public/cpp/application/lib/application_runner.cc |
@@ -20,8 +20,9 @@ void ApplicationImpl::Terminate() { |
RunLoop::current()->Quit(); |
} |
-ApplicationRunner::ApplicationRunner(ApplicationDelegate* delegate) |
- : delegate_(delegate) {} |
+ApplicationRunner::ApplicationRunner( |
+ std::unique_ptr<ApplicationDelegate> delegate) |
+ : delegate_(std::move(delegate)) {} |
ApplicationRunner::~ApplicationRunner() { |
assert(!delegate_); |
@@ -47,13 +48,13 @@ MojoResult ApplicationRunner::Run(MojoHandle app_request_handle) { |
Environment env; |
{ |
RunLoop loop; |
- ApplicationImpl app(delegate_, MakeRequest<Application>(MakeScopedHandle( |
- MessagePipeHandle(app_request_handle)))); |
+ ApplicationImpl app(delegate_.get(), |
+ MakeRequest<Application>(MakeScopedHandle( |
+ MessagePipeHandle(app_request_handle)))); |
loop.Run(); |
} |
- delete delegate_; |
- delegate_ = nullptr; |
+ delegate_.reset(); |
g_running = false; |