aboutsummaryrefslogtreecommitdiff
path: root/paludis/resolver/collect_depped_upon.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/resolver/collect_depped_upon.cc')
-rw-r--r--paludis/resolver/collect_depped_upon.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/paludis/resolver/collect_depped_upon.cc b/paludis/resolver/collect_depped_upon.cc
index a0c938b1b..67e1cf517 100644
--- a/paludis/resolver/collect_depped_upon.cc
+++ b/paludis/resolver/collect_depped_upon.cc
@@ -71,6 +71,7 @@ namespace
struct DependentChecker
{
const Environment * const env;
+ const std::shared_ptr<const PackageID> id;
const std::shared_ptr<const C_> going_away;
const std::shared_ptr<const C_> newly_available;
const std::shared_ptr<const PackageIDSequence> not_changing_slots;
@@ -78,10 +79,12 @@ namespace
DependentChecker(
const Environment * const e,
+ const std::shared_ptr<const PackageID> & i,
const std::shared_ptr<const C_> & g,
const std::shared_ptr<const C_> & n,
const std::shared_ptr<const PackageIDSequence> & s) :
env(e),
+ id(i),
going_away(g),
newly_available(n),
not_changing_slots(s),
@@ -141,7 +144,7 @@ namespace
void visit(const DependencySpecTree::NodeType<ConditionalDepSpec>::Type & s)
{
- if (s.spec()->condition_met())
+ if (s.spec()->condition_met(env, id))
std::for_each(indirect_iterator(s.begin()), indirect_iterator(s.end()),
accept_visitor(*this));
}
@@ -172,7 +175,7 @@ paludis::resolver::dependent_upon(
const std::shared_ptr<const ChangeByResolventSequence> & staying,
const std::shared_ptr<const PackageIDSequence> & not_changing_slots)
{
- DependentChecker<ChangeByResolventSequence> c(env, going_away, staying, not_changing_slots);
+ DependentChecker<ChangeByResolventSequence> c(env, id, going_away, staying, not_changing_slots);
if (id->dependencies_key())
id->dependencies_key()->value()->top()->accept(c);
else
@@ -197,7 +200,7 @@ paludis::resolver::collect_depped_upon(
const std::shared_ptr<const PackageIDSequence> & candidates,
const std::shared_ptr<const PackageIDSequence> & not_changing_slots)
{
- DependentChecker<PackageIDSequence> c(env, candidates, std::make_shared<PackageIDSequence>(), not_changing_slots);
+ DependentChecker<PackageIDSequence> c(env, id, candidates, std::make_shared<PackageIDSequence>(), not_changing_slots);
if (id->dependencies_key())
id->dependencies_key()->value()->top()->accept(c);
else