nodestack: destroy Nodes properly in ~NodeStack()
[model-checker.git] / nodestack.cc
index d5425e335dad86614b4e09db71717e0b00dfe2d2..6b1d4ef9c86929fdd14d14172149abaacec96133 100644 (file)
@@ -4,6 +4,7 @@
 #include "action.h"
 #include "common.h"
 #include "model.h"
+#include "threads.h"
 
 /**
  * @brief Node constructor
@@ -273,6 +274,11 @@ bool Node::is_enabled(thread_id_t tid)
        return thread_id < num_threads && enabled_array[thread_id];
 }
 
+bool Node::has_priority(thread_id_t tid)
+{
+       return fairness[id_to_int(tid)].priority;
+}
+
 /**
  * Add an action to the may_read_from set.
  * @param act is the action to add
@@ -356,16 +362,18 @@ void Node::explore(thread_id_t tid)
        explored_children[i] = true;
 }
 
-NodeStack::NodeStack()
-       : total_nodes(0)
+NodeStack::NodeStack() :
+       node_list(1, new Node()),
+       iter(0),
+       total_nodes(0)
 {
-       node_list.push_back(new Node());
        total_nodes++;
-       iter = 0;
 }
 
 NodeStack::~NodeStack()
 {
+       for (unsigned int i = 0; i < node_list.size(); i++)
+               delete node_list[i];
 }
 
 void NodeStack::print()