X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=cyclegraph.cc;h=6c7e945e98ee8e58ab0a73911f24b8484a935389;hp=bb481e1374c6ad19f91a9a9eb27828517b775919;hb=ef795ab915a9311fc24c7ea7048f40d0a3bb34b3;hpb=236e7f6ba12d26eb02a1348858168ed939bcfa0a diff --git a/cyclegraph.cc b/cyclegraph.cc index bb481e13..6c7e945e 100644 --- a/cyclegraph.cc +++ b/cyclegraph.cc @@ -297,6 +297,10 @@ void CycleGraph::freeAction(const ModelAction * act) { CycleNode *dst = cn->edges[i]; dst->removeInEdge(cn); } + for(unsigned int i=0;iinedges.size();i++) { + CycleNode *src = cn->inedges[i]; + src->removeEdge(cn); + } delete cn; } @@ -325,6 +329,16 @@ void CycleNode::removeInEdge(CycleNode *src) { } } +void CycleNode::removeEdge(CycleNode *dst) { + for(unsigned int i=0;i < edges.size();i++) { + if (edges[i] == dst) { + edges[i] = edges[edges.size()-1]; + edges.pop_back(); + break; + } + } +} + /** * @param i The index of the edge to return * @returns The CycleNode edge indexed by i