From edba6e50d9c9c0a7120c251bed36a87b51f4c826 Mon Sep 17 00:00:00 2001
From: Loic Blot <loic.blot@unix-experience.fr>
Date: Sat, 8 Oct 2016 16:42:09 +0200
Subject: [PATCH] Optimize ClientIface::getPlayerNames(): return const ref
 instead a copy of all names

---
 src/clientiface.cpp | 6 ------
 src/clientiface.h   | 2 +-
 src/server.cpp      | 6 +++---
 3 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/src/clientiface.cpp b/src/clientiface.cpp
index e55c07cb6..fbfc16770 100644
--- a/src/clientiface.cpp
+++ b/src/clientiface.cpp
@@ -627,12 +627,6 @@ std::vector<u16> ClientInterface::getClientIDs(ClientState min_state)
 	return reply;
 }
 
-std::vector<std::string> ClientInterface::getPlayerNames()
-{
-	return m_clients_names;
-}
-
-
 void ClientInterface::step(float dtime)
 {
 	m_print_info_timer += dtime;
diff --git a/src/clientiface.h b/src/clientiface.h
index 8985ef71f..551d71bbe 100644
--- a/src/clientiface.h
+++ b/src/clientiface.h
@@ -453,7 +453,7 @@ class ClientInterface {
 	std::vector<u16> getClientIDs(ClientState min_state=CS_Active);
 
 	/* get list of client player names */
-	std::vector<std::string> getPlayerNames();
+	const std::vector<std::string> &getPlayerNames() const { return m_clients_names; }
 
 	/* send message to client */
 	void send(u16 peer_id, u8 channelnum, NetworkPacket* pkt, bool reliable);
diff --git a/src/server.cpp b/src/server.cpp
index 67dbe1545..edd97e225 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1123,11 +1123,11 @@ PlayerSAO* Server::StageTwoClientInit(u16 peer_id)
 		Print out action
 	*/
 	{
-		std::vector<std::string> names = m_clients.getPlayerNames();
+		const std::vector<std::string> &names = m_clients.getPlayerNames();
 
-		actionstream<<player->getName() <<" joins game. List of players: ";
+		actionstream << player->getName() << " joins game. List of players: ";
 
-		for (std::vector<std::string>::iterator i = names.begin();
+		for (std::vector<std::string>::const_iterator i = names.begin();
 				i != names.end(); ++i) {
 			actionstream << *i << " ";
 		}
-- 
GitLab