X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2FASTAnalyses%2FOrder%2Fordergraph.cc;fp=src%2FASTAnalyses%2FOrder%2Fordergraph.cc;h=ce9a0712f0e6f713c8c4bcabedbd59871e7f2306;hp=2127db9c466f06b647a54a0799ae667ffd11112a;hb=3552af833b3ff76f221d6c9a9e410da96dd58734;hpb=b510348e650406a2bb812bb6f599cc32b508403b diff --git a/src/ASTAnalyses/Order/ordergraph.cc b/src/ASTAnalyses/Order/ordergraph.cc index 2127db9..ce9a071 100644 --- a/src/ASTAnalyses/Order/ordergraph.cc +++ b/src/ASTAnalyses/Order/ordergraph.cc @@ -184,16 +184,19 @@ bool OrderGraph::isTherePath(OrderNode *source, OrderNode *destination){ SetIteratorOrderEdge *iterator = source->outEdges.iterator(); bool found = false; while(iterator->hasNext()){ - OrderNode* node = iterator->next()->sink; - if(!visited.contains(node)){ - if( node == destination ){ - found = true; - break; - } - visited.add(node); - found =isTherePathVisit(visited, node, destination); - if(found){ - break; + OrderEdge* edge = iterator->next(); + if(edge->polPos){ + OrderNode* node = edge->sink; + if(!visited.contains(node)){ + if( node == destination ){ + found = true; + break; + } + visited.add(node); + found =isTherePathVisit(visited, node, destination); + if(found){ + break; + } } } } @@ -205,15 +208,18 @@ bool OrderGraph::isTherePathVisit(HashsetOrderNode &visited, OrderNode* current, SetIteratorOrderEdge *iterator = current->outEdges.iterator(); bool found = false; while(iterator->hasNext()){ - OrderNode* node = iterator->next()->sink; - if(node == destination){ - found = true; - break; - } - visited.add(node); - if(isTherePathVisit(visited, node, destination)){ - found = true; - break; + OrderEdge* edge = iterator->next(); + if(edge->polPos){ + OrderNode* node = edge->sink; + if(node == destination){ + found = true; + break; + } + visited.add(node); + if(isTherePathVisit(visited, node, destination)){ + found = true; + break; + } } } delete iterator;