bugfix - add stl-model.h wrappers, to provide more control over STL
[c11tester.git] / cyclegraph.h
index d5c6a92af78715de0ff4f2c323a578b7a43f6ff1..9819cf8763ef2eaa5e0b72cb22989bc116fb1059 100644 (file)
@@ -9,19 +9,20 @@
 #ifndef __CYCLEGRAPH_H__
 #define __CYCLEGRAPH_H__
 
-#include "stl_wrappers.h"
+#include <vector>
 #include <inttypes.h>
 #include <stdio.h>
 
 #include "hashtable.h"
 #include "config.h"
 #include "mymemory.h"
+#include "stl-model.h"
 
 class Promise;
 class CycleNode;
 class ModelAction;
 
-typedef model_vector< const Promise * > promise_list_t;
+typedef ModelVector<const Promise *> promise_list_t;
 
 /** @brief A graph of Model Actions for tracking cycles. */
 class CycleGraph {
@@ -68,7 +69,7 @@ class CycleGraph {
        bool mergeNodes(CycleNode *node1, CycleNode *node2);
 
        HashTable<const CycleNode *, const CycleNode *, uintptr_t, 4, model_malloc, model_calloc, model_free> *discovered;
-       model_vector< const CycleNode * > * queue;
+       ModelVector<const CycleNode *> * queue;
 
 
        /** @brief A table for mapping ModelActions to CycleNodes */
@@ -77,7 +78,7 @@ class CycleGraph {
        HashTable<const Promise *, CycleNode *, uintptr_t, 4> promiseToNode;
 
 #if SUPPORT_MOD_ORDER_DUMP
-       std::vector< CycleNode *, SnapshotAlloc<CycleNode *> > nodeList;
+       SnapVector<CycleNode *> nodeList;
 #endif
 
        bool checkReachable(const CycleNode *from, const CycleNode *to) const;
@@ -86,8 +87,8 @@ class CycleGraph {
        bool hasCycles;
        bool oldCycles;
 
-       std::vector< CycleNode *, SnapshotAlloc<CycleNode *> > rollbackvector;
-       std::vector< CycleNode *, SnapshotAlloc<CycleNode *> > rmwrollbackvector;
+       SnapVector<CycleNode *> rollbackvector;
+       SnapVector<CycleNode *> rmwrollbackvector;
 };
 
 /**
@@ -124,10 +125,10 @@ class CycleNode {
        const Promise *promise;
 
        /** @brief The edges leading out from this node */
-       std::vector< CycleNode *, SnapshotAlloc<CycleNode *> > edges;
+       SnapVector<CycleNode *> edges;
 
        /** @brief The edges leading into this node */
-       std::vector< CycleNode *, SnapshotAlloc<CycleNode *> > back_edges;
+       SnapVector<CycleNode *> back_edges;
 
        /** Pointer to a RMW node that reads from this node, or NULL, if none
         * exists */