aboutsummaryrefslogtreecommitdiff
path: root/paludis/resolver/orderer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/resolver/orderer.cc')
-rw-r--r--paludis/resolver/orderer.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/paludis/resolver/orderer.cc b/paludis/resolver/orderer.cc
index 9e891e38e..c9a62d7ec 100644
--- a/paludis/resolver/orderer.cc
+++ b/paludis/resolver/orderer.cc
@@ -623,13 +623,14 @@ Orderer::_order_sub_ssccs(
scc_nag_without_met_deps.add_node(*r);
for (NAG::EdgesFromConstIterator e(scc_nag.begin_edges_from(*r)), e_end(scc_nag.end_edges_from(*r)) ;
e != e_end ; ++e)
- if ((! e->second.build_all_met()) || (! e->second.run_all_met()))
- scc_nag_without_met_deps.add_edge(*r, e->first, make_named_values<NAGEdgeProperties>(
- n::build() = e->second.build() && ! e->second.build_all_met(),
- n::build_all_met() = e->second.build_all_met(),
- n::run() = e->second.run() && ! e->second.run_all_met(),
- n::run_all_met() = e->second.run_all_met()
- ));
+ if (sub_scc->nodes()->end() != sub_scc->nodes()->find(e->first))
+ if ((! e->second.build_all_met()) || (! e->second.run_all_met()))
+ scc_nag_without_met_deps.add_edge(*r, e->first, make_named_values<NAGEdgeProperties>(
+ n::build() = e->second.build() && ! e->second.build_all_met(),
+ n::build_all_met() = e->second.build_all_met(),
+ n::run() = e->second.run() && ! e->second.run_all_met(),
+ n::run_all_met() = e->second.run_all_met()
+ ));
}
scc_nag_without_met_deps.verify_edges();