From: Brian Norris Date: Tue, 31 Jul 2012 22:50:07 +0000 (-0700) Subject: cyclegraph: add destructor, use 'const' appropriately X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=commitdiff_plain;h=0c0b705a2030faabd0f9540fbe6e474895208fa6;ds=sidebyside cyclegraph: add destructor, use 'const' appropriately [Split from Brian Demsky's larger commit] --- diff --git a/cyclegraph.cc b/cyclegraph.cc index dad8b7ac..fefd595a 100644 --- a/cyclegraph.cc +++ b/cyclegraph.cc @@ -6,8 +6,11 @@ CycleGraph::CycleGraph() { hasCycles=false; } +CycleGraph::~CycleGraph() { +} + /** Returns the CycleNode for a given ModelAction. */ -CycleNode * CycleGraph::getNode(ModelAction * action) { +CycleNode * CycleGraph::getNode(const ModelAction * action) { CycleNode *node=actionToNode.get(action); if (node==NULL) { node=new CycleNode(action); @@ -17,7 +20,7 @@ CycleNode * CycleGraph::getNode(ModelAction * action) { } /** Adds an edge between two ModelActions. */ -void CycleGraph::addEdge(ModelAction *from, ModelAction *to) { +void CycleGraph::addEdge(const ModelAction *from, const ModelAction *to) { CycleNode *fromnode=getNode(from); CycleNode *tonode=getNode(to); if (!hasCycles) { @@ -57,7 +60,7 @@ bool CycleGraph::checkForCycles() { } /** Constructor for a CycleNode. */ -CycleNode::CycleNode(ModelAction *modelaction) { +CycleNode::CycleNode(const ModelAction *modelaction) { action=modelaction; } diff --git a/cyclegraph.h b/cyclegraph.h index a748c779..a98e68c9 100644 --- a/cyclegraph.h +++ b/cyclegraph.h @@ -12,25 +12,25 @@ class ModelAction; class CycleGraph { public: CycleGraph(); - void addEdge(ModelAction *from, ModelAction *to); + ~CycleGraph(); + void addEdge(const ModelAction *from, const ModelAction *to); bool checkForCycles(); private: - CycleNode * getNode(ModelAction *); - HashTable actionToNode; + CycleNode * getNode(const ModelAction *); + HashTable actionToNode; bool checkReachable(CycleNode *from, CycleNode *to); bool hasCycles; - }; class CycleNode { public: - CycleNode(ModelAction *action); + CycleNode(const ModelAction *action); void addEdge(CycleNode * node); std::vector * getEdges(); private: - ModelAction *action; + const ModelAction *action; std::vector edges; };