cyclegraph: add Promise CycleNode
[c11tester.git] / cyclegraph.cc
index 7632b0c9c591e44d3e1e42322ab44808142fd195..7a3532830598684a7719f6f3329fcda746aa5ccc 100644 (file)
@@ -240,33 +240,31 @@ bool CycleGraph::checkPromise(const ModelAction *fromact, Promise *promise) cons
 
 void CycleGraph::startChanges()
 {
-       ASSERT(rollbackvector.size() == 0);
-       ASSERT(rmwrollbackvector.size() == 0);
+       ASSERT(rollbackvector.empty());
+       ASSERT(rmwrollbackvector.empty());
        ASSERT(oldCycles == hasCycles);
 }
 
 /** Commit changes to the cyclegraph. */
 void CycleGraph::commitChanges()
 {
-       rollbackvector.resize(0);
-       rmwrollbackvector.resize(0);
+       rollbackvector.clear();
+       rmwrollbackvector.clear();
        oldCycles = hasCycles;
 }
 
 /** Rollback changes to the previous commit. */
 void CycleGraph::rollbackChanges()
 {
-       for (unsigned int i = 0; i < rollbackvector.size(); i++) {
+       for (unsigned int i = 0; i < rollbackvector.size(); i++)
                rollbackvector[i]->popEdge();
-       }
 
-       for (unsigned int i = 0; i < rmwrollbackvector.size(); i++) {
+       for (unsigned int i = 0; i < rmwrollbackvector.size(); i++)
                rmwrollbackvector[i]->clearRMW();
-       }
 
        hasCycles = oldCycles;
-       rollbackvector.resize(0);
-       rmwrollbackvector.resize(0);
+       rollbackvector.clear();
+       rmwrollbackvector.clear();
 }
 
 /** @returns whether a CycleGraph contains cycles. */
@@ -281,6 +279,18 @@ bool CycleGraph::checkForCycles() const
  */
 CycleNode::CycleNode(const ModelAction *act) :
        action(act),
+       promise(NULL),
+       hasRMW(NULL)
+{
+}
+
+/**
+ * @brief Constructor for a Promise CycleNode
+ * @param promise The Promise which was generated
+ */
+CycleNode::CycleNode(const Promise *promise) :
+       action(NULL),
+       promise(promise),
        hasRMW(NULL)
 {
 }