Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Pass large objects by reference to const (Sonar).
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 29 Jun 2023 07:41:52 +0000 (09:41 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 29 Jun 2023 07:41:52 +0000 (09:41 +0200)
src/mc/explo/UdporChecker.cpp
src/mc/explo/udpor/maximal_subsets_iterator.cpp
src/mc/explo/udpor/maximal_subsets_iterator.hpp

index 43c229f..c8bac5b 100644 (file)
@@ -300,7 +300,7 @@ void UdporChecker::clean_up_explore(const UnfoldingEvent* e, const Configuration
 
   // "U (complicated expression)" portion
   const EventSet conflict_union = std::accumulate(
-      C_union_D.begin(), C_union_D.end(), EventSet(), [&](const EventSet acc, const UnfoldingEvent* e_prime) {
+      C_union_D.begin(), C_union_D.end(), EventSet(), [&](const EventSet& acc, const UnfoldingEvent* e_prime) {
         return acc.make_union(unfolding.get_immediate_conflicts_of(e_prime));
       });
 
index 6c6ba8c..6c2dee3 100644 (file)
@@ -6,7 +6,8 @@
 
 namespace simgrid::mc::udpor {
 
-maximal_subsets_iterator::maximal_subsets_iterator(const EventSet& events, std::optional<node_filter_function> filter,
+maximal_subsets_iterator::maximal_subsets_iterator(const EventSet& events,
+                                                   const std::optional<node_filter_function>& filter,
                                                    std::optional<size_t> maximum_subset_size)
     : maximum_subset_size(maximum_subset_size), current_maximal_set({EventSet()})
 {
index 3c3291a..49872d8 100644 (file)
@@ -40,13 +40,14 @@ public:
 
   maximal_subsets_iterator()                                    = default;
   explicit maximal_subsets_iterator(const Configuration& config,
-                                    std::optional<node_filter_function> filter = std::nullopt,
-                                    std::optional<size_t> maximum_subset_size  = std::nullopt)
+                                    const std::optional<node_filter_function>& filter = std::nullopt,
+                                    std::optional<size_t> maximum_subset_size         = std::nullopt)
       : maximal_subsets_iterator(config.get_events(), filter, maximum_subset_size)
   {
   }
-  explicit maximal_subsets_iterator(const EventSet& events, std::optional<node_filter_function> filter = std::nullopt,
-                                    std::optional<size_t> maximum_subset_size = std::nullopt);
+  explicit maximal_subsets_iterator(const EventSet& events,
+                                    const std::optional<node_filter_function>& filter = std::nullopt,
+                                    std::optional<size_t> maximum_subset_size         = std::nullopt);
 
 private:
   std::vector<const UnfoldingEvent*> topological_ordering;