clang-tidy: Enable performance-for-range-copy check

The check is only applied to loop variables of types that are
expensive to copy which means they are not trivially copyable or have
a non-trivial copy constructor or destructor.

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: I9643e396c6bd95bb9bef9037f018fbaf20d506d7
diff --git a/.clang-tidy b/.clang-tidy
index 34327df..9dac9db 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -227,6 +227,7 @@
 modernize-use-transparent-functors,
 modernize-use-uncaught-exceptions,
 modernize-use-using,
+performance-for-range-copy,
 performance-implicit-conversion-in-loop,
 performance-inefficient-algorithm,
 performance-inefficient-string-concatenation,
diff --git a/manager/manager.cpp b/manager/manager.cpp
index a5ac6b3..6a31e93 100644
--- a/manager/manager.cpp
+++ b/manager/manager.cpp
@@ -49,7 +49,7 @@
     for (const auto it : sorted)
     {
         // apply all led actions of that group to the map
-        for (Layout::LedAction action : it->actionSet)
+        for (const Layout::LedAction& action : it->actionSet)
         {
             newState[action.name] = action;
         }
@@ -65,7 +65,7 @@
     for (const Layout::GroupLayout* it : assertedGroups)
     {
         // apply all led actions of that group to the map
-        for (Layout::LedAction action : it->actionSet)
+        for (const Layout::LedAction& action : it->actionSet)
         {
             applyGroupAction(newState, action);
         }