X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=cyclegraph.h;h=749abf8ca847d9969016356101b153c4d0688a84;hb=62dbff8dbca80ded5959e88ec9c177bef9108546;hp=83d3db21d77cdfc192f0bd286d21fee188de7fac;hpb=4da2859902f1096053a2d9857df502d3bb94e6e4;p=model-checker.git diff --git a/cyclegraph.h b/cyclegraph.h index 83d3db2..749abf8 100644 --- a/cyclegraph.h +++ b/cyclegraph.h @@ -28,7 +28,7 @@ class CycleGraph { ~CycleGraph(); template - void addEdge(const T from, const U to); + bool addEdge(const T from, const U to); bool checkForCycles() const; void addRMWEdge(const ModelAction *from, const ModelAction *rmw); @@ -50,7 +50,7 @@ class CycleGraph { SNAPSHOTALLOC private: - void addNodeEdge(CycleNode *fromnode, CycleNode *tonode); + bool addNodeEdge(CycleNode *fromnode, CycleNode *tonode); void putNode(const ModelAction *act, CycleNode *node); CycleNode * getNode(const ModelAction *act); CycleNode * getNode(const Promise *promise); @@ -141,9 +141,10 @@ class CycleNode { * * @param to The edge points to this object, of type T * @param from The edge comes from this object, of type U + * @return True, if new edge(s) are added; otherwise false */ template -void CycleGraph::addEdge(const T from, const U to) +bool CycleGraph::addEdge(const T from, const U to) { ASSERT(from); ASSERT(to); @@ -151,7 +152,7 @@ void CycleGraph::addEdge(const T from, const U to) CycleNode *fromnode = getNode(from); CycleNode *tonode = getNode(to); - addNodeEdge(fromnode, tonode); + return addNodeEdge(fromnode, tonode); } /**