Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Fix #includes
[simgrid.git] / src / mc / LivenessChecker.hpp
index f12c0b3..7ce79ce 100644 (file)
@@ -16,7 +16,6 @@
 
 #include <simgrid_config.h>
 #include <xbt/base.h>
-#include <xbt/dynar.h>
 #include <xbt/automaton.h>
 #include <xbt/memory.hpp>
 #include "src/mc/mc_state.h"
@@ -34,7 +33,7 @@ struct XBT_PRIVATE Pair {
   bool search_cycle = false;
   std::shared_ptr<simgrid::mc::State> graph_state = nullptr; /* System state included */
   xbt_automaton_state_t automaton_state = nullptr;
-  std::vector<int> atomic_propositions;
+  std::shared_ptr<const std::vector<int>> atomic_propositions;
   int requests = 0;
   int depth = 0;
   bool exploration_started = false;
@@ -51,13 +50,13 @@ struct XBT_PRIVATE VisitedPair {
   int other_num = 0; /* Dot output for */
   std::shared_ptr<simgrid::mc::State> graph_state = nullptr; /* System state included */
   xbt_automaton_state_t automaton_state = nullptr;
-  std::vector<int> atomic_propositions;
+  std::shared_ptr<const std::vector<int>> atomic_propositions;
   std::size_t heap_bytes_used = 0;
   int nb_processes = 0;
 
   VisitedPair(
     int pair_num, xbt_automaton_state_t automaton_state,
-    std::vector<int> const& atomic_propositions,
+    std::shared_ptr<const std::vector<int>> atomic_propositions,
     std::shared_ptr<simgrid::mc::State> graph_state);
   ~VisitedPair();
 };
@@ -73,7 +72,7 @@ private:
   int main();
   void prepare();
   int compare(simgrid::mc::VisitedPair* state1, simgrid::mc::VisitedPair* state2);
-  std::vector<int> getPropositionValues();
+  std::shared_ptr<const std::vector<int>> getPropositionValues();
   std::shared_ptr<VisitedPair> insertAcceptancePair(simgrid::mc::Pair* pair);
   int insertVisitedPair(std::shared_ptr<VisitedPair> visited_pair, simgrid::mc::Pair* pair);
   void showAcceptanceCycle(std::size_t depth);
@@ -81,7 +80,7 @@ private:
   void removeAcceptancePair(int pair_num);
   void purgeVisitedPairs();
   void backtrack();
-  std::shared_ptr<Pair> newPair(Pair* pair, xbt_automaton_state_t state);
+  std::shared_ptr<Pair> newPair(Pair* pair, xbt_automaton_state_t state, std::shared_ptr<const std::vector<int>> propositions);
 public:
   // A stack of (application_state, automaton_state) pairs for DFS exploration:
   std::list<std::shared_ptr<Pair>> explorationStack_;