Chromium Code Reviews| Index: chrome/service/service_ipc_server.cc |
| diff --git a/chrome/service/service_ipc_server.cc b/chrome/service/service_ipc_server.cc |
| index bcd3726080471a16f18a783504d2776ebecf2cd0..26e047a4ce9a59e2973d50ea08507c571c14e0cb 100644 |
| --- a/chrome/service/service_ipc_server.cc |
| +++ b/chrome/service/service_ipc_server.cc |
| @@ -4,6 +4,8 @@ |
| #include "chrome/service/service_ipc_server.h" |
| +#include <algorithm> |
| + |
| #include "base/metrics/histogram_delta_serialization.h" |
| #include "build/build_config.h" |
| #include "chrome/common/service_messages.h" |
| @@ -75,7 +77,7 @@ bool ServiceIPCServer::Send(IPC::Message* msg) { |
| void ServiceIPCServer::AddMessageHandler( |
| std::unique_ptr<MessageHandler> handler) { |
| - message_handlers_.push_back(handler.release()); |
| + message_handlers_.push_back(std::move(handler)); |
| } |
| bool ServiceIPCServer::OnMessageReceived(const IPC::Message& msg) { |
| @@ -90,7 +92,11 @@ bool ServiceIPCServer::OnMessageReceived(const IPC::Message& msg) { |
| if (!handled) { |
| // Make a copy of the handlers to prevent modification during iteration. |
| - std::vector<MessageHandler*> temp_handlers = message_handlers_.get(); |
| + std::vector<MessageHandler*> temp_handlers(message_handlers_.size()); |
|
sky
2017/04/07 14:42:14
You've used a for loop for this functionality in o
leonhsl(Using Gerrit)
2017/04/10 08:33:06
Done.
Sorry for this! I was writing such codes bef
|
| + std::transform( |
| + message_handlers_.cbegin(), message_handlers_.cend(), |
| + temp_handlers.begin(), |
| + [](const std::unique_ptr<MessageHandler>& item) { return item.get(); }); |
| for (auto* handler : temp_handlers) { |
| handled = handler->HandleMessage(msg); |
| if (handled) |