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..b8e81ea3838f3b67850e2ef7ab7fcc924cb87585 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; |
+ temp_handlers.reserve(message_handlers_.size()); |
+ for (const auto& handler : message_handlers_) |
+ temp_handlers.push_back(handler.get()); |
+ |
for (auto* handler : temp_handlers) { |
handled = handler->HandleMessage(msg); |
if (handled) |