Fix Coverity issues 36/304536/1 accepted/tizen/unified/20240119.154746
authorAdam Michalski <a.michalski2@partner.samsung.com>
Thu, 18 Jan 2024 14:28:21 +0000 (15:28 +0100)
committerAdam Michalski <a.michalski2@partner.samsung.com>
Thu, 18 Jan 2024 14:28:21 +0000 (15:28 +0100)
Change-Id: I488696b437817ae23707e4f92305d83fe1943919

src/service/src/tuple_hash.hpp

index a712ac95ba30175a1171077bbbfbebbc0d60d761..201482ca011578c6df260d4c7ab9d5cd4c2c119c 100644 (file)
 template<typename T, size_t I = std::tuple_size<T>::value - 1>
 struct tuple_hash
 {
-       std::size_t operator()(T t) const noexcept
+       std::size_t operator()(T const& t) const noexcept
        {
-               auto v = std::get<I>(t);
-               auto h = std::hash<decltype(v)>{}(v);
+               const auto &v = std::get<I>(t);
+               auto h = std::hash<std::remove_cvref_t<decltype(v)>>{}(v);
                auto h1 = tuple_hash<T, I - 1>{}(t);
                return h ^ h1 << 1;
        }
@@ -39,10 +39,10 @@ struct tuple_hash
 template<typename T>
 struct tuple_hash<T, 0>
 {
-       std::size_t operator()(T t) const noexcept
+       std::size_t operator()(T const& t) const noexcept
        {
-               auto v = std::get<0>(t);
-               auto h = std::hash<decltype(v)>{}(v);
+               const auto &v = std::get<0>(t);
+               auto h = std::hash<std::remove_cvref_t<decltype(v)>>{}(v);
                return h;
        }
 };