Merge branch 'branch-weiyu' of ssh://plrg.eecs.uci.edu:/home/git/random-fuzzer into...
[c11tester.git] / cyclegraph.cc
index 966a5035a9fd484074b2a6802bff58cc119e58ae..79030985e6b45e5a3555c4d66ef5a4bbea40dd44 100644 (file)
@@ -81,7 +81,7 @@ void CycleGraph::addNodeEdge(CycleNode *fromnode, CycleNode *tonode, bool forcee
 
        /* Propagate clock vector changes */
        if (tonode->cv->merge(fromnode->cv)) {
-               queue->push_back(fromnode);
+               queue->push_back(tonode);
                while(!queue->empty()) {
                        const CycleNode *node = queue->back();
                        queue->pop_back();
@@ -138,13 +138,13 @@ void CycleGraph::addRMWEdge(const ModelAction *from, const ModelAction *rmw)
 }
 
 void CycleGraph::addEdges(SnapList<ModelAction *> * edgeset, const ModelAction *to) {
-       for(SnapList<ModelAction*>::iterator it = edgeset->begin();it!=edgeset->end();) {
-               ModelAction *act = *it;
+       for(sllnode<ModelAction*> * it = edgeset->begin();it!=NULL;) {
+               ModelAction *act = it->getVal();
                CycleNode *node = getNode(act);
-               SnapList<ModelAction*>::iterator it2 = it;
-               it2++;
-               for(;it2!=edgeset->end(); ) {
-                       ModelAction *act2 = *it2;
+               sllnode<ModelAction*> * it2 = it;
+               it2=it2->getNext();
+               for(;it2!=NULL; ) {
+                       ModelAction *act2 = it2->getVal();
                        CycleNode *node2 = getNode(act2);
                        if (checkReachable(node, node2)) {
                                it = edgeset->erase(it);
@@ -153,16 +153,16 @@ void CycleGraph::addEdges(SnapList<ModelAction *> * edgeset, const ModelAction *
                                it2 = edgeset->erase(it2);
                                goto endinnerloop;
                        }
-                       it2++;
+                       it2=it2->getNext();
 endinnerloop:
                        ;
                }
-               it++;
+               it=it->getNext();
 endouterloop:
                ;
        }
-       for(SnapList<ModelAction*>::iterator it = edgeset->begin();it!=edgeset->end();it++) {
-               ModelAction *from = *it;
+       for(sllnode<ModelAction*> *it = edgeset->begin();it!=NULL;it=it->getNext()) {
+               ModelAction *from = it->getVal();
                addEdge(from, to, from->get_tid() == to->get_tid());
        }
 }