00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "depGraph.hpp"
00012
00013
00014
00016
00017 bool DepGraph::checkCycles () {
00018
00019 for (std::set <DepNode *, compNode>::iterator
00020 i = vertices_.begin ();
00021 i != vertices_.end (); ++i) {
00022
00023 int xi = (*i) -> Index ();
00024
00025 std::set <DepNode *, compNode> *gen2 = (*i) -> DepList ();
00026
00027 for (std::set <DepNode *, compNode>::iterator j = gen2 -> begin ();
00028 j != gen2 -> end (); ++j) {
00029
00030 std::set <DepNode *, compNode> already_visited;
00031
00032 if ((*j) -> depends (xi, true, &already_visited)) {
00033
00034 #ifdef DEBUG
00035 printf ("(%d -> %d) ", xi, (*j) -> Index ());
00036 fflush (stdout);
00037 #endif
00038
00039 return true;
00040 }
00041 else already_visited.insert (*j);
00042 }
00043 }
00044
00045 return false;
00046 }