Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sonar cleanups: pass large objects by const reference
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 5 Mar 2020 06:58:45 +0000 (07:58 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 5 Mar 2020 06:58:50 +0000 (07:58 +0100)
include/simgrid/s4u/Engine.hpp
src/s4u/s4u_Engine.cpp

index b4259fd..fc1c747 100644 (file)
@@ -53,12 +53,12 @@ public:
   XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_function(
       const std::string& name, int (*code)(int, char**));
 
-  void register_function(const std::string& name, std::function<void(int, char**)> code);
-  void register_function(const std::string& name, std::function<void(std::vector<std::string>)> code);
+  void register_function(const std::string& name, const std::function<void(int, char**)>& code);
+  void register_function(const std::string& name, const std::function<void(std::vector<std::string>)>& code);
 
   XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_default(
       int (*code)(int, char**));
-  void register_default(std::function<void(int, char**)> code);
+  void register_default(const std::function<void(int, char**)>& code);
   void register_default(const kernel::actor::ActorCodeFactory& factory);
 
   void register_function(const std::string& name, const kernel::actor::ActorCodeFactory& factory);
index f21bdbf..a8ab22f 100644 (file)
@@ -104,7 +104,7 @@ void Engine::register_default(int (*code)(int, char**)) // deprecated
 }
 
 /** Registers the main function of an actor that will be launched from the deployment file */
-void Engine::register_function(const std::string& name, std::function<void(int, char**)> code)
+void Engine::register_function(const std::string& name, const std::function<void(int, char**)>& code)
 {
   kernel::actor::ActorCodeFactory code_factory = [code](std::vector<std::string> args) {
     return xbt::wrap_main(code, std::move(args));
@@ -113,7 +113,7 @@ void Engine::register_function(const std::string& name, std::function<void(int,
 }
 
 /** Registers the main function of an actor that will be launched from the deployment file */
-void Engine::register_function(const std::string& name, std::function<void(std::vector<std::string>)> code)
+void Engine::register_function(const std::string& name, const std::function<void(std::vector<std::string>)>& code)
 {
   kernel::actor::ActorCodeFactory code_factory = [code](std::vector<std::string> args) {
     return std::bind(std::move(code), std::move(args));
@@ -125,7 +125,7 @@ void Engine::register_function(const std::string& name, std::function<void(std::
  * It will be used as fallback when the function requested from the deployment file was not registered.
  * It is used for trace-based simulations (see examples/s4u/replay-comms and similar).
  */
-void Engine::register_default(std::function<void(int, char**)> code)
+void Engine::register_default(const std::function<void(int, char**)>& code)
 {
   register_default([code](std::vector<std::string> args) { return xbt::wrap_main(code, std::move(args)); });
 }